Archive for 8 月, 2008

リストの値をグラフ化

日曜日, 8 月 31st, 2008

リストの値を利用してグラフを作成したいってことありませんか?Excel Servicesを利用する場合は、リストの値をExcelで取得するという仕組みが必要になってなんだかしんどい感じです。で、実はSharePoint Designer Team BlogにSilverlightを利用したリストの値をグラフ化するという記事がありました。ちなみに以下の感じになります(値とか適当ですので・・・)。

0901-01.jpg

ちなみに、図をクリックすると詳細がわかります。

0901-02.jpg

上の図のコンポーネントはvisifireが出しているsilverlightコンポーネントです。このコンポーネントはHTMLで吐き出された値をJavascriptで加工し、グラフ化するというものになります。ですので、MOSSで利用する際は、データビューを利用して、リストの値をXMLとして吐き出し、そのデータをこのコンポーネントで利用するという形になります。

データを表示するページに、visifire.jsとvisifire.xapを同じディレクトリに配置し、その後、データビューの下記のコードを(この時点では、データビューにグラフ化したいリストをデータソースとして設定します。

<xsl:template match="/">

<xsl:call-template name="dvt_1"/>

</xsl:template>

以下のコードに置き換えます(下記例は、TitleとValueというプロパティを利用するものです)。
<xsl:template match="/">   

<!-- Load the chart tools -->   

<script type="text/javascript" src="Visifire.js"></script>   

<!-- Create the JavaScript variable that holds the data to plot. -->   

<!-- Note the xsl:for-each statement which loops over all the    -->

<!-- list items and creates the necessary DataPoint entries      -->

<!-- in the Chart XML.                                           -->

<xsl:text disable-output-escaping="yes"><

![CDATA[<script type="text/javascript">var xmlString = ' <vc:Chart xmlns:vc="clr-namespace:Visifire.Charts;assembly=Visifire.Charts"' + ' Theme="Theme1" AnimationType="Type4" >' + ' <vc:Title Text="Visifire Pie Chart"/>'+' <vc:DataSeries RenderAs="Pie" ShowInLegend="False" Bevel="False">']]>

</xsl:text>

<xsl:for-each select="/dsQueryResponse/Rows/Row">

<xsl:text disable-output-escaping="yes">

<![CDATA[  + ' <vc:DataPoint AxisLabel="]]></xsl:text>

<xsl:value-of select="./@Title" />

<xsl:text disable-output-escaping="yes">

<![CDATA[" YValue="]]></xsl:text>

<xsl:value-of select="@Value" />

<xsl:text disable-output-escaping="yes">

<![CDATA["/>']]></xsl:text></xsl:for-each>

<xsl:text disable-output-escaping="yes">

<![CDATA[ + ' </vc:DataSeries>' + ' </vc:Chart>';    </script> ]]></xsl:text>

<!-- Create the div to hold the chart and then run   -->

<!-- the JavaScript code to actually show the chart. -->

<div id="myChart" style="width:500px;height:300px;">

<script language="javascript" type="text/javascript">

var vChart2 = new Visifire("Visifire.xap");

vChart2.setDataXml(xmlString);

vChart2.render("myChart");

</script></div></xsl:template>
で、完成です。

ちなみに、visifireにはいろいろなテンプレートが用意されているので、受け渡すデータさえ、きちんと設定すれば棒グラフ折れ線などが利用できます。

SharePoint管理ツールキットとInfoPath ifilterの公開

日曜日, 8 月 31st, 2008

いつの間にか、SharePoint Server 2007 お役立ちツールというページができてました。

そこに以下のものが公開されていました。

SharePoint管理ツールキット

  • Batch Site Manager:サイトコレクションの移動・ロック・削除をするための機能のようです

インストールが正常に終わると、以下のメニューが追加されます。

0831-01.jpg

で、こんな画面でサイトコレクションの移動・ロック・削除をします(英語UIのようです)。

0831-02.png

  • Updatealert Stsadm:こちらは、既存のWebアプリの名前変更後・代替アクセスマッピング変更後に電子メールの通知の再設定するためのコマンドのようです

  • UserProfileReplication:あるServerからほかのServerにUserProfileをコピーするツールのようです。

こちらは、下記のようなアプリケーションがインストールされます。いまいち用途がわからない…ステージングとプロダクション環境を利用しているとか、他のファームにプロファイルを送る??だれか正しい用途を教えてください。

0831-03.png

上記の3つの機能がについては、日本語版の操作ガイドもダウンロードできます…助かりました
InfoPath ifilter

メイン?はInfoPathに添付されたファイルに対しても全文検索できるためのifilterのようです(動作確認した範囲ですが…あ、きちんと各フィールドの値も検索対象でした)…InfoPathに添付した場合、添付ファイルデータは、XMLのタグに囲まれたbase64でエンコードされた状態で*.xmlに保存されています。既存のXMLのifilterだと、エンコードされた状態の文字列が検索対象となりますが、このifilterを利用すると、添付ファイルをきちんと元のファイルに復元したあと、そのファイルのifilterでクロールを行うようです。

MOSS SDK1.4 および SQL 2008への対応

日曜日, 8 月 31st, 2008

MOSS SDK 1.4

MOSS SDK 1.4がリリースされましたね。検索フェデレーションのサンプル(SQL, RSSコネクタ, Virtual Earthコネクタ)が追加されているようです。

SQL 2008への対応

SQL 2008に対応したみたいですね。SP1からSQL2008をDBとして利用できるみたいですね。Team Blogにはざっくり、管理性・可用性・安全性が改良されたと書いてありますね。可用性はDBミラーリングのホットスタンバイの作成ができるようになったようですね。また、安全性はDataの暗号化が新しくなったようですね。従来だと、アプリケーション側が、DBの暗号化に関連する機能を持つ必要があったのですが、今度からは、アプリケーション非依存のDBの暗号化ができるようになったみたいですね。

まずは、MOSSで利用しているときのUpgrade方法を教えてほしいですね

SharePointのzip, xlsb 検索

木曜日, 8 月 28th, 2008

SP1からzip, xlsbの検索が可能になってますね。

設定はこちらのKBに記載されていますが、設定手順どおりに設定をしてもzipの検索ができません…あれ?

で、*.regファイルの内容と、実際に登録されているレジストリの値を比較すると…全ての値が設定されていませんでした。ですので、*.regを実行した後、下記のレジストリの登録は手動で行う必要があるようです…

  • [HKEY_CLASSES_ROOT\CLSID\{20E823C2-62F3-4638-96BD-90F4F6784EBC}\InprocServer32]
     文字列値(既定)に“C:\Program Files\Common Files\Microsoft shared\Filters\offfiltx.dll”を値として設定
  • [HKEY_CLASSES_ROOT\CLSID\{312AB530-ECC9-496E-AE0E-C9E6C5392499}\InprocServer32]
     文字列値(既定)に“ C:\Program Files\Common Files\Microsoft shared\Filters\offfiltx.dll ”を値として設定
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\
     ContentIndexCommon\Filters\Extension\.xlsb]

    •  新規のキーとして“ .xlsb ”を追加し、文字列値(既定)に “{312AB530-ECC9-496E-AE0E-C9E6C5392499}”を値として設定

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\
     ContentIndexCommon\Filters\Extension\.zip]

    •  新規のキーとして“ .zip ”を追加し、文字列値(既定)に “{20E823C2-62F3-4638-96BD-90F4F6784EBC}”を値として設定

上記の設定を行うと検索が可能になりました。これはどうやら、Zipファイルの中のドキュメントも検索対象になるという仕様みたいです。私が試したところ、doc, docx, xls, xlsx, ppt, pptxは全文検索の対象になってました。また、txt, pdfに関してはファイル名のみが検索対象となっていました。これは、offfilt.dllというOffice用のモジュールを利用しているから??だから、それ以外のファイル名までは検索できる??Bug??

…どうなんでしょ?誰か知っているかたは教えてください…

Visual Studio 2008 Extensions Version 1.2 リリース

水曜日, 8 月 27th, 2008

VS2008に対応したVseWSS1.2が公開されました。

まだ、試していませんが、何か追加機能があるのでしょうか?

このごろ、慣れない開発をしているので、全く余裕がありません…

しばらくはVS2005+VseWSS1.1で…ちょっと使い勝手が変わると混乱するぐらいの初心者なので

今月中には、たまっている記事を公開したい…

Webサービスの登録

月曜日, 8 月 18th, 2008

松崎さんのBlogに記載されていたAJAX+WebサービスのDemoを実装してみました。

http://blogs.msdn.com/tsmatsuz/archive/2008/06/09/vs08-sharepoint-ux-2-asp-net-ajax-web-part.aspx

Blogの中にあるSharePointへのWebサービスの登録手順について詳細に書いておきます(自分のメモのために・・・)。ちなみにMSDNに記載されているWebサービスの登録手順はこちら

手順1 

SharePointハイブ(C:\Program Files\Common Files\Microsoft Shared\web server extensions\12)のTemplates\LayoutsにKakakuSearch.asmxをコピーした後(ISAPIだとDiscoが上手く動きませんでした…)、VSのコマンドプロンプト(すべてのプログラムにメニューがあります)からDiscoを実施(Disco http://servername:port/_layouts/KakakuSearch.asmx)します。そうすると、
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\にKakakuSearch.discoとKakakuSearch.wsdlが作成されます 

手順2

KakakuSearch.wsdlとKakakuSearch.discoの<?xml version="1.0" encoding="utf-8"?> を以下のコードと置き換えます

<%@ Page Language="C#" Inherits="System.Web.UI.Page" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint.Utilities" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<% Response.ContentType = "text/xml"; %>

手順3

次に、KakakuSearch.discoの<ContractRef ref="http://servername:port/_layouts/KakakuSearch.asmx?wsdl"の"http://servername:port/_layouts/KakakuSearch.asmx?wsdl" を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request) + "?wsdl"),Response.Output); %> に置き換え、次に、同様にdocRefの"http://servername:port/_layouts/KakakuSearch.asmx"を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます。

手順4

次にKakakuSearch.discoの(2つある内の上のほうの)<soap address="http://servername:port/_layouts/KakakuSearch.asmx"の

"http://servername:port/_layouts/KakakuSearch.asmx"を
<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます。
同様に(2つある内の下のほうの)<soap address="http://servername:port/_layouts/KakakuSearch.asmx"を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます
 

手順5
MSDNには

In the .wsdl file, make the following similar substitution for the SOAP address that is specified:

という表現がしてあり、「soap address=」を「soap:address location=」に置き換える??という風に理解しましたが、全く自信がありません。ちなみに、soap addressでもsoap:address locationでもどちらでもきちんと動作しました。InfoPathでWebサービスを呼び出した場合はsoap addressじゃないとダメみたいです…よくわかりません。

手順6

そして、KakakuSearch.discoをKakakuSearchdisco.aspxに変更し、KakakuSearch.wsdlをKakakuSearchwsdl.aspxに変更します。その後、KakakuSearch.asmxとKakakuSearchdisco.aspxとKakakuSearchwsdl.aspxをSharePointハイブのISAPIフォルダにコピーします。

手順7

SharePointハイブのISAPI/spdisco.exeを開き、下記の<contractRef>タグと<discoveryRef>タグを追加します。
<contractRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx?wsdl"), Response.Output); %>
docRef=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx"), Response.Output); %>
xmlns=" http://schemas.xmlsoap.org/disco/scl/ " />
<discoveryRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx?disco"),Response.Output); %>
xmlns="http://schemas.xmlsoap.org/disco/" />

以上で設定は終わりです。上記の設定以外は松崎さんのブログを参照してください。正直、かなり面倒臭かったです…というか背伸びし過ぎた感じです…本当に動いてよかったです!あ、ちなみに、検索ボックスに入れる文字は、Blog通りの文字を入れるか、前半の数人の部分を入れないときちんと結果が返ってきませんでした…

検索フェデレーションのコネクタ

木曜日, 8 月 14th, 2008

Infrastructure Updateを適用すると、検索のフェデレーションができるようになります。そのコネクタ集のリンクを見つけました!

http://www.microsoft.com/japan/enterprisesearch/connectors/federated.aspx

これを見ると…

Yahooは普通に検索できるようですが、GoogleはNewのみが検索できるようになるみたいですね

また、他製品との検索も可能になるコネクタもでるようです。試したいけど時間が・・・

フライアウトメニュー

火曜日, 8 月 12th, 2008

リンクに表示させる階層を増やそうと努力しているうちに、たまたまフライアウトメニューとよばれる機能を実現しちゃいました。

SPDで編集でタグのプロパティを下記のように編集すると

0808-02-1.jpg

リンクが以下のようなフライアウトになりました

0808-03.jpg

ちなみにもともとは以下の状態です。

0808-01.jpg

もともとは、MaximumDynamicDisplayLevelsをキーワードにいろいろ探していたのですが、たまたおりば~ずさんのBlogに流れ着き、おりば~ずさんが1年前に同様のことをBlogで公開されていました(フライアウトメニューということばもこのBlogで知りました)。

SharePoint Developer(おりば~ずさんのBlogです)

個人用サイトのカスタマイズ

木曜日, 8 月 7th, 2008

これから個人用サイトをどんどん活用していきたいのですが、いまいち使いにくいのです(多機能でかつ所属情報がですぎ…)で、最近、どれくらいカスタマイズできるのか検証しています(最近は、このごろはサイト定義とかの検証で撃沈中…)。

ちなみに、個人用サイトには公開用と個人用の2種類ありますが、公開用はプロファイルをインポートした時点で、自動的に作成されます。今回カスタマイズをするほうは、後者の個人用サイト(実質、サイトコレクションですが…)のほうです。ちょこっとサイト定義を変更してみました。

個人用サイトのサイト定義のテンプレートは、C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\SPSPERS\XML\onet.xmlを編集します。ノンサポートになります…

たとえば、下記の中から2つの<List>を削除(赤字の部分)してみると…

 <Lists>
            <List Title="$Resources:spscore,PersonalSiteOnet_List_PersonalDocuments" Type="101" Url="Personal Documents" QuickLaunchUrl="Personal Documents/Forms/AllItems.aspx" Description="$Resources:spscore,PersonalSiteOnet_List_PersonalDocuments_Description" FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101"></List>
            <List Title="$Resources:spscore,PersonalSiteOnet_List_MyDocuments" Type="101" Url="Shared Documents" QuickLaunchUrl="Shared Documents/Forms/AllItems.aspx" Description="$Resources:spscore,PersonalSiteOnet_List_MyDocuments_Description" FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101"></List>
            <List Title="$Resources:spscore,PersonalSiteOnet_List_MyPictures" Type="109" Url="Shared Pictures" QuickLaunchUrl="Shared Pictures/Forms/AllItems.aspx" Description="$Resources:spscore,PersonalSiteOnet_List_MyPictures_Description" FeatureId="00BFEA71-52D4-45B3-B544-B1C71B620109"></List>

        </Lists>

変更前(赤字部部あり)

0807-01.jpg

変更後(赤字部分なし)

0807-02.jpg

と、変更されます。

ちなみに、どうせならもう少し大胆に変更してみました。

変更前

0807-03.jpg

変更後

0807-04.jpg

まぁ、これくらいシンプルなら…でもまだまだいろいろ消したいのがあるなぁ、今度、まとめてみたいと思います。

もちろん、ここでできることはほかのサイトテンプレートでも可能です。

マイナ・メジャバージョンでの最大値

水曜日, 8 月 6th, 2008

超小ネタです。

リスト・ライブラリのバージョン数のさいだいちは50,000 です。

以上

追記

数値入力時のバリデーションにより、50000という数字に設定されていましたが、SQLのテーブルをみるとマイナは512、メジャはINT32で定義されていました。


ホットワード background border 日曜日 利用 作成
割引クーポンまとめ情報 - クー割