Archive for 7 月, 2008

InfoPath 2007を利用したSharePoint Webサービス連携

木曜日, 7 月 31st, 2008

InfoPath 2007にはWebサービス接続が用意されています。一方、MOSSもWebサービスが用意されています。MOSSが用意しているWebサービスは、IIS マネージャからみると、http://server:port/_vti_bin/***.asmxに各種Webサービスが揃っています。

では、まずInfoPathを開き、フォームテンプレートのデザインWebサービスを選択します。次にデータ接続ウィザードが起動します。

  1. 1番目の画面でデータの受信と送信を選択します。
  2. 2番目の画面でWebサービスを選択します。今回は、http://server:port/_vti_bin/search.asmx?WSDLを入力します。
  3. 3番目の画面でQueryを選択します。
  4. 4番目の画面では、適当な名前(既定はメインクエリ)を入力します。
  5. 5番目の画面では、上記で入力したWebサービスのURLが入力されていることを確認し、次へを押します。
  6. 6番目の画面では、Queryを選択します。
  7. 7番目の画面では、パラメータオプションフィールドまたはグループqueryXMLを選択します。
  8. 8番目の画面では、適当な名前(既定はメイン送信)を入力します。
これで、基本的な設定は完了です。そうすると下図のような画面がでてきます。

0731-01.jpg

あとは、queryXMLここにクエリフィールドをドラックしてくださいと記載されている領域にドラッグ&ドロップします。同様にQueryResultをここにデータフィールドをドラッグしてくださいと記載されている領域にドラッグ&ドロップします。次にプレビューを押します(下図になります)。
0731-021.jpg

そして、Query XMLに検索文字を入力し、クエリの実行ボタンを押すと、Qurey Resultに検索結果のXMLが表示されます!
0731-03.jpg

これだけの操作でWebサービスの動作確認ができるなんて楽です!また、他のWebサービスを利用すると、InfoPathフォームを利用した管理ツールなどを利用できる??アクセス権の一覧とか出せたら…

ちなみにQueryではなく、QueryExを選択するとちょっと変わります。

まず、途中でサンプル値を入力する必要があります。下記の例はSharePointという文字で、特に検索範囲を決めない場合です。

<?xml version="1.0" encoding="utf-8" ?>

<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">

<Query domain="QDomain">

<SupportedFormats>

<Format>urn:Microsoft.Search.Response.Document.Document</Format>

</SupportedFormats>

<Context>

<QueryText language="en-US" type="MSSQLFT">

<![CDATA[ SELECT Title, Rank, Size, Description, Write, Path FROM portal..scope() WHERE CONTAINS ('"sharepoint*"')  ORDER BY "Rank" DESC]]>

</QueryText>

</Context>

<Range>

<StartAt>1</StartAt>

<Count>100</Count>

</Range>

<ImplicitAndBehavior>true</ImplicitAndBehavior>

</Query>

</QueryPacket>

(改行がわかりにくくてすいません…)

あと、もう1つ先程の手順と違う箇所は、RelevantResultsグループをここにデータフィールドをドラッグしてくださいと記載されている領域にドラッグ&ドロップします。また、このときに繰り返しセクションとしてフィールドを設定します(下図になります)。

0731-04.jpg

さて、次にクエリですが、ここも単に文字列ではなく、上記のXMLから<Query Packet >~</Query Packet>の部分を入力し、クエリを実行します。

<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">

<Query domain="QDomain">

<SupportedFormats>

<Format>urn:Microsoft.Search.Response.Document.Document</Format>

</SupportedFormats>

<Context>

<QueryText language="en-US" type="MSSQLFT"><![CDATA[ SELECT Title, Rank, Size, Description, Write, Path FROM portal..scope() WHERE CONTAINS ('"sharepoint*"')  ORDER BY "Rank" DESC]]></QueryText>

</Context>

<Range>

<StartAt>1</StartAt>

<Count>100</Count>

</Range>

<ImplicitAndBehavior>true</ImplicitAndBehavior>

</Query>

</QueryPacket>

そうすると・・・下図のように検索結果分の項目や、プロパティ毎に検索結果の値が確認できます。QueryExを利用すると、SQLクエリで検索することができるので、表示させたい項目などを指定して検索結果として表示させることが可能になります!
0731-05.jpg

LanguagePackのインストール

月曜日, 7 月 28th, 2008

(以前、投稿していたと思っていたら、タイトルだけが投稿されていたみたいデス…のだめ風)

さて、SharePointを多言語環境で利用するためのLanguagePackのインストールについてのメモです(実は社内で使うことになりまして…意外とGlobal??)

社内環境ではファームにSP1を適用した後に、多言語環境を利用することになりまして、さて、適当に入れて成功するものではないようなので、事前に検証した結果を共有します。

最速適用手順

  1. WSS Language Pack RTMをインストール(言語の変更を選択することで各国の言語を入手できます)
  2. 構成ウィザード拒否
  3. MOSS Language Pack RTMをインストール
  4. 構成ウィザード拒否
  5. WSS Language Pack SP1をインストール
  6. 構成ウィザード拒否
  7. MOSS Language Pack SP1をインストール
  8. 構成ウィザード実施
さて、SP1の時の構成ウィザードの手順はちょっとテクニックがいる感じでしたが、言語パックの構成ウィザードは1台ずつ終わらせることしかできません。ですので、モジュールをインストールした後は、サーバー毎に構成ウィザードを終了させる必要があります。

ちなみに、上記の手順でインストールした場合、構成ウィザードを実施しなくても多言語サイトを作成できたりします。また、WSS Language Pack RTMをインストールした時点で、WSS用のテンプレートが追加され、MOSS Language Packをインストールした時点で、MOSS用のテンプレートが追加されてました(あと、SharePointハイブに各言語用のバイナリが追加されてました)。

それから、上記の設定手順ですが、基本的にはWSS⇒MOSS、RTM⇒SP1という順序が崩れなければインストールは成功しました(たとえば、WSS RTM⇒MOSS RTM⇒WSS SP1⇒MOSS SP1など)

ディスカッション掲示板の移動方法

木曜日, 7 月 24th, 2008

小ネタです。

リスト単位の移動・コピーをしようとすると、SPDの個人用パッケージを利用するか、リストテンプレートという手段を考えると思いますが、容量が多い場合はSPDだと動作は不安定だし、リストテンプレートも使えなかったりします(拡張すればOKですが)。で、ディスカッション掲示板のみに利用できる方法がありました。Outlook 2007で 移動元のディスカッション掲示板とリンクさせておき、移動先のディスカッション掲示板とリンクします。そして、あとはDrug & DropでOK!。ただし、基本的には移動(移動元からなくなる)になってしまうので、一度PSTとして保存してやるとOKです。

ASP.NETが「許可」と認識されない

木曜日, 7 月 24th, 2008

小ネタです。

久しぶりにMOSSをインストールしたのですが、いざ、MOSSをインストールするとASP.NETを「許可」してくださいというメッセージが出てインストールできません。IISマネージャを見るとASP.NETは許可されているのですが、Versionが1.1xxxになっています…あれ?

IISサイトのプロパティをASP.NETのVersionを2.0xxxにとりあえずしてみると…やはり同じメッセージが出ます。ここで、ちょっと調べてみると…今回環境を作成するときに、先に.NET3.0をインストールしてから、アプリケーションサーバの役割を追加していました。おそらく、ここで既定のASP.NETのVersionがVersion 1.1xxxになったみたいです。

で、C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727 にあるaspnet_regiis.exeを利用しました。とりあえず、aspnet_regiis.exe -iを実行するとOKでした。どうやら、コンポーネントの追加と削除からASP.NETを選択するという行為がアプリケーションサーバの役割の追加の時に起きていたのが問題みたいです

Federationを利用した検索でできること

日曜日, 7 月 20th, 2008

Federationを利用して、新たにできるようになったことがあります。その中で、私が一番実現したかったことができるようになりました!それは、1つの検索結果ページに複数の検索範囲の結果を表示させることです。たとえば、1つの検索結果のページにSharePointの検索結果とファイルサーバの検索結果を表示させるなどです(既定の検索結果のページは、1つの検索範囲のみ主要な検索結果のWebパーツに表示させることができました。ですので、異なる検索範囲を利用する場合は、検索タブで分けるしかありませんでした)。ちなみに、設定してみると、以下のような感じになります(XSLは既定の設定です。黒塗りが多くてすいません…)。

0720-01.png

また、この他に、検索のトリガを設定することができます。例えば、

  • プレフィックス:特定の検索文字が入っている場合のみ、検索結果を表示するときに利用します。おすすめWebパーツとかぶってますね
  • パターン:.NETの正規表現キャプチャグループを利用できます。たとえば、電話番号だとxx-xxxx-xxxxとか、メールアドレスのxxxxx@xxxx.xxxなど(.NETの正規表現はこちらに記載があります。)

あと、忘れていけないのはOpen Search1.1への対応です。Open Searchの規格に対応した検索エンジンをMOSSの検索結果として利用できます。ですので、検索結果にはAmazonの検索結果を出すことも可能になるはずです。また、社内リソースに対して検索を行ったときに、その検索単語に関連するInternetサイトの結果や、書籍の結果が出せるようになるはずです!

 以下、関連リンクです。

コンテンツDB間のサイトコレクションの移動

木曜日, 7 月 17th, 2008

SP1を適用すると、stsadm -o mergecontentdbsを利用して、特定のコンテンツDBにサイトコレクションを移動することができます。SP1以前でのサイトコレクションの移動方法は、言わずとしれたSharePoint Technical Noteのこちらをご確認ください。

さて、Mergecontentdbsはこちらに実行の仕方が書いてありますが…ん~わかりにくい。試すのにめちゃくちゃ苦労しました。では、実際の方法ですが、以下の図にあるhttp://devmoss とhttp://devmoss/sites/sitecollection2 というサイトコレクションを移動したいと思います。

0717-01.jpg

まずは、移動するサイトコレクションを記載した参照ファイルを作成します。コマンドは

0717-02.jpg

そうするとSharePointハイブ(C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\BIN)にmysites.xmlができます。

0717-03.jpg

これで用意が整ったので、実際に移動してみたいと思います。では、WSS_ContentからWSS_Content2にサイトコレクションを移動してみたいと思います。

 0717-04.jpg

コマンドを実行すると…

0717-05.jpg

 正常に終了し、確認をしてみると

0717-06.jpg

確かに移動しています。ちなみに、mysites.xmlを以下のようにして

0717-07.jpg

コマンドを実行すると…

0717-08.jpg

というように1つのサイトコレクションのみ移動することが可能です。ん~便利

Infrastructure Update

水曜日, 7 月 16th, 2008

風の噂でSP1以降の修正パッケージであるRollUpパッケージというのをインストールすると、Search Serverで利用できるOpen Search1.1に対応した検索のWebパーツが利用できると聞いていましたが、WSSとMOSSのモジュールを上手く見つけることができず断念しておりました…

しかし!!! RollUpを含む修正パッケージが出たらしいです。その名もInfrastructure Update(日本名は"インフラストラクチャ更新プログラム"…なんかイケテナイ)

SP1と同様にWSSとMOSS用のモジュールがあるようです。

  • WSS用 Infrastructure Update

    • プラットフォームのパフォーマンスの向上および修正プログラム
    • いくつかのバックアップおよび復元機能関連の修正プログラム
    • いくつかの主要なワークフロー関連の修正プログラム

  • Office Server用 Infrastructure Update

    • フェデレーション検索や統合された検索管理ダッシュボードなどの新しい検索機能
    • 検索機能のパフォーマンスとスケーラビリティを向上するいくつかの主要な修正プログラム
    • プラットフォームのパフォーマンスの向上および修正プログラム
    • コンテンツ展開機能の発行の信頼性を向上するいくつかの主要な修正プログラムフェデレーション検索や統合された検索管理ダッシュボードなどの新しい検索機能

どうやら、SP1をインストール後に適用するようですね。ですので、今までの道のりはRTM+SP1+Infrastructure Updateということになります。
また、インストール方法もSP1の時と同様のようです。修正内容ですが、下記のリンクに修正内容一覧が出ています。

地味にコンテンツ展開機能系の修正が多い…コンテンツ展開機能を以前、簡単に試したときに動かなかったんですけど…Bug?だったんですね・・・

さて、話戻しまして検索ですが上記モジュールをインストールすると…共有サービスに検索管理というメニューが追加されてます。

0716-01.jpg

そして、クリックすると…

0716-02.jpg

ん~なんか格好良いw ここから一元管理ができて楽そうです!

あとは、追加された検索のWebパーツを追加すると以下のようにLive Search(既定はやっぱり…)と検索候補の単語が出てきます。夢が広がりますね~

0716-03.jpg

stsadmによる個人用サイトの作成

日曜日, 7 月 13th, 2008

管理上の理由で、個人用サイトを特定のコンテンツDBに入るようにしておきたい場合ってありませんか?個人用サイトを作成するには、そのログオンユーザが画面右上の個人用サイトというリンクをクリックして作成する必要があります。ですので、実際に個人用サイトを作成するタイミングを管理者が制御できないので、管理者はサイトコレクションを手動で目的のコンテンツDBに移す必要があります…やってられません!で、どうにかして、事前に作成できないかなと探してみました!

stsadm -o createsite -url http://servername/personal/username -ownerlogin domain\username -owneremail user@domain.com -sitetemplate SPSPERS

※http://servername/personal/usernameは個人用サイトのホスト設定になります。

ただ、確かにこのコマンドを実施すると、コンテンツDBの中に、個人用サイトが作成されていることが確認できましたが、最終的に各ユーザが個人用サイトをクリックする必要があります…

ちょっと調べてみましたが、stsadmでは、サイトコレクションはできているのですが、ADのWebサイトの属性には個人用サイトのURLが登録されていなかったです。ですので、サイトコレクションはできているけれども、ADのWebサイトの属性への登録などの事前処理が行われないため、個人用サイトをクリックする必要があるようです…

ん~当初の目的が達成されるのでよしとしましょう

ごみ箱を非表示にする

金曜日, 7 月 11th, 2008

ごみ箱を非表示にする方法です。

まず、SharePoint Desingerで該当のページを開きます。この時点では、ごみ箱を選択しようとしても選択することができません。ですので、まず画面の左側のPlaceHolderLeftNavBarの「>」からカスタムコンテンツの作成をクリックします。

0711-01.png

そうすると、今まで選択できなかったごみ箱を選択できるようになります(コードの場合は、<SharePoint:SPLinkButton~ id=idNavLinkRecyleBin~>です)。そうすると、下図のようなタグのプロパティ一覧が表示されます。

0711-02.png

この中からVisibleFalseに設定すると、ごみ箱を非表示にすることができます。ただ、管理者の方は見えたほうが良いという場合は、PermissionStringFullMaskに設定すると管理者のみ表示されるようになります。ちなみに、すべてのサイトコンテンツの表示に対しても同じ設定をすることができます。どうやら<SharePoint:~>から始まる者に対して設定できそうです(全部設定したわけじゃないですが…)

Permission, PermissionStringなどの情報は下記リンクを参考にしました。

http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=38

メールの宛先(To)による検索

金曜日, 7 月 11th, 2008

弊社で、メールのTOでフィルタをかけた状態で検索を行いたいという要望があったので実現できるかを調べてみました。共有サービス検索の設定メタデータ プロパティのマッピング新しい管理プロパティをクリックします。そして、プロパティ名に適当な名前(MailToとします)を入力したあと、マッピングの追加をクリックし、メールカテゴリの中にTo(テキスト)を選択します。その後、フルクロールを実施します。

また、高度な検索で先ほど作成したMailToで検索するためにXSLを編集します。

ページの編集高度な検索のボックスWebパーツ共有Webパーツの変更プロパティのテキストの入力ダイアログを以下のように編集します。

  • <PropertyDefs>の下に<PropertyDef Name="MailTo" DataType="text" DisplayName="表示名"/>
  • <Query/>  の下に<PropertyRef Name="MailTo" />

を設定すると準備完了です。実際に検索を行ってみると…*.msgはだめでした…が、*.emlはできました。

…微妙。


ホットワード background border 利用 SharePoint Webサービス
割引クーポンまとめ情報 - クー割