Blog Home  Home Feed your aggregator (RSS 2.0)  
light-hearted.net
人は計画を立て、神はそれを笑う
 
 Saturday, November 15, 2008

こんな感じの予定表を定義します。

image

で、細かい話はおいといて、アイテムを追加します。
タイトル t2 が、終日のイベントとして登録しています。

入力したデータは以下の通りです。
image image 

追加直後のDBの中身はこんな感じです。

image
データは、コンテンツDB(WSS_Content) の AllUserData テーブルに保存されています。

終日をオンにすると、datetime1とdatetime2 はローカル時刻で、それ以外はUTC時刻で保存さています。
#これが問題の始まりのような気がしますw

SharePointの列とDBの列の対応は以下の通りです

SharePoint

DB

タイトル nvarchar1
dt1 datetime4
開始時刻 datetime1
終了時刻 datetime2
終日 bit1
作成日時 tp_Created
更新日時 tp_Modified


それで問題になるのはここから。
2つのアイテムをEditForm.aspxで開くと以下のように表示されます。

image
image

終日がオンのアイテムの dt1 の値が9時間マイナスされています。
で、何もせずに保存します。

image image

それで DB の方も見てみると。。。

image 

datetime4 を見ると、UTC時刻で保存されています。
ただEditForm.aspxで開いて何もせずに保存するだけで dt1 がマイナス9時間されてしまいました。

どうやら読み込み時に、終日がオンになっていると datetime1~datetime8 をローカル時刻として読み込んでしまうようです。
#日時を扱うコントロール(多分、Microsoft.SharePoint.WebControls.DateTimeControl)の使い方がおかしいのかなぁ

また、SharePoint Designer でデータソースを使うと、終日がオンの場合は日付型のデータがDBの値から一律マイナス9時間されるみたいですね。
これも同じことに起因しているのではないでしょうか?
例えば、全部のデータをUTC時刻に統一しようとしているとか。ま、それでも動作はおかしいですけど。

Reflector を使って Microsoft.SharePoint.dll のソースを見ましたが、
Microsoft.SharePoint.WebControls.DateTimeControl.SelectedDate のソースおかしくないですか?

Saturday, November 15, 2008 2:57:54 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   SharePoint  | 
 Thursday, November 13, 2008

以下のサイトにて話題となっている件ですが、ちょっと調べてみたので。。。

予定表に加えた日付フィールドの挙動がおかしい
http://sharepoint.orivers.jp/blogs/orivers/archive/2008/11/07/3416.aspx
予定表の「9時間戻ちゃうよ」バグ
http://sharepoint.boo.jp/index.php?e=245

結論から言うと、EditForm.aspxの問題だと。

SharePointでは日付をUTC(日本時間から-9時間)で、DBに保存しています。
で、EditForm.aspxがその保存されているデータを読み込む際に終日のチェックがオンになっていると、
なぜかローカル時間に変換(日本の場合+9時間)せずに読み込んでしまうようです。
#地域設定がUS中部のサイトでも確認しましたが、-6時間されてませんでした。

なぜ、上記のような動作が仕様となったのかが想像できないのが、自分の未熟さを感じるところです。

調べた際の詳細な内容は後でポストしますが、対応方法はJavaScriptくらいしか思いつきませんねぇ。。。

(追記)
面白いのは、標準で追加される2つの日付フィールド(開始時刻、終了時刻)は正常に動作するってことです。。。

Thursday, November 13, 2008 11:56:19 AM (東京 (標準時), UTC+09:00)  #    Comments [2]   SharePoint  | 
 Thursday, November 06, 2008

ポッドキャストが公開されてます。

ガッツリ iPod classic にダウンロードしましたw

iPodで見るのはつらいです。
ソースが読めねぇ。。。

http://channel9.msdn.com/posts/pdc2008/

しかし、"Oh! My God!"で始まるキーノートってwww

Thursday, November 06, 2008 10:07:25 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
 Wednesday, November 05, 2008

出てた。

意外と早かった。とは言え、首を長くしてお待ちしていたわけで、早速インストール。

Microsoft Expression Blend™ 2 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=eb9b5c48-ba2b-4c39-a1c3-135c60bbbe66&DisplayLang=ja

Wednesday, November 05, 2008 3:00:46 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   WPF  | 
 Thursday, October 30, 2008

にアクセスできない。

せっかく時間ができたのにぃ

(2008.11.02追記)
アクセス可能になってたみたい。
日付は2008/10/31付け。

Thursday, October 30, 2008 10:36:22 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

やっぱりこのタイミングでの公開。

やっぱりクラウド(SaaS?)でのサービス提供だけなんだろうなぁ。

個人的にはサーバ製品としての提供があっても面白いかなぁって思うんだけど。

Thursday, October 30, 2008 10:33:02 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Office  | 
 Tuesday, October 28, 2008

結構良いコラムがあるのに、RSS配信されないのは残念。

今度要望してみよう。

Microsoft Tech Fielders
http://www.microsoft.com/japan/powerpro/tf/default.mspx

Tuesday, October 28, 2008 9:15:27 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

今日は完全にPDCに振り回されてる気がする。うーむ。

Microsoftのクラウドへの回答。
http://www.microsoft.com/azure/default.mspx

今後、ハイペースで情報が出てくるんだろう。

SIerは、ますます「タチイチ」を明確にする必要があるだろう。
クラウドが進めば、特に運用系エンジニアには厳しい世界が来るのかもしれない。個人的にはそうは思っていない。
開発系のエンジニアには、より高度な知識セットを要求されるのは確実かなぁ。
ユーザの状況を判断しながら適切な提案・開発ができなければ生きてはいけないだろう。

そもそも、クラウドってどこまで普及するんでしょうか?

Tuesday, October 28, 2008 9:06:38 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

メールが来てた。一瞬、SUNのイベントかと思った。

PDCのハイライト的なものか?

Microsoft Tech Days 2009
http://www.microsoft.com/japan/events/techdays/default.mspx

参加するかどうかは不明。定員は1000名。

ま、Azureが中心だろう。

Tuesday, October 28, 2008 8:58:32 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

最近気になること。

みなさん LINQ を使うときって、埋め込みクエリを使ってるのでしょうか?拡張メソッドを使ってるのでしょうか?

私は拡張メソッド派です。
理由はデータを絞り込んでいく流れがイメージしやすいから。

けど、MSDNとかのサンプルはほとんどが埋め込みクエリなんですねぇ。。。

Tuesday, October 28, 2008 12:48:14 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
 Thursday, October 23, 2008

開発者ではなく、ユーザー用のツールです。

ま、万能のレポートなんて作れるわけないので、このツールもある意味必須となるのではないでしょうか。。。

Microsoft SQL Server 2008 Reporting Services Report Builder 2.0
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6

Thursday, October 23, 2008 10:09:40 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   SQL Server  | 

笑えるものもあれば、笑えないものもあり。。。

情マネ流マーフィーの法則
http://www.atmarkit.co.jp/im/cits/serial/murphy/index.html

Thursday, October 23, 2008 9:45:04 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

これも試さないとなぁ

いろいろ使い道ありそうだし。

Microsoft Sync Framework
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c88ba2d1-cef3-4149-b301-9b056e7fb1e6

Thursday, October 23, 2008 9:30:25 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET | SQL Server  | 

ちらほらと紹介されている Web Platform Installer ですが、
使ってみようと思ってしまったので、ダウンロードしに行くと。。。

「ん、Web Application Installer?」

どうやら以下のWebアプリをインストールしてくれるもののようです。
#PHPなどの必要となるものは別途みたいです

  • DotNetNuke
  • Drupal
  • Gallery
  • Graffiti CMS
  • osCommerce
  • phpBB
  • WordPress

いくつか試してみたかったものがあったので、時間を見つけて使ってみよう。

Web Application Installer
http://www.microsoft.com/web/channel/products/WebApplicationInstaller.aspx

Web Platform Installer
http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

Thursday, October 23, 2008 8:56:12 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
Copyright © 2008 yama3. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: