ID列を集計列で計算に利用すると 0 が返る問題は SharePoint 2013 でも修正されない
ある方と話をしていて思い出したのですが、SharePoint 2007 の頃から、集計値列の計算に「ID」列を利用すると正常に計算ができない、という問題がありました。これが SharePoint 2010 や最新の SharePoint 2013(Preview)では修正されたのか?改めて調べてみました。その結果は…残念。すべての環境で問題が再現しました。
例えば集計値で、「=ID」として、ID値を表示させます。ここでは「calID」列とします。
SharePoint 2007
SharePoint 2010
SharePoint 2013(注:Preview/Office365)
新しいアイテムを作成すると、0 というあり得ないIDが表示されます。これは、SharePoint の集計値が計算されるタイミングとデータベース上で固有のID値が作成されるタイミングのズレに起因する問題のようですが、詳しくはこちらのサイトで解説があります(英語)
ID は手軽に使えるユニーク値なので、この仕様は時としてとても不便です。2013 でも修正されていないのは、ちょっと残念ですね。(そんなに難しいとも思えないのですが…)
とりあえず代替策として、前述のサイトではイベントハンドラーによる実装が紹介されています。もっと簡単な方法としては、ワークフローで新規アイテム作成時にID列を別の列にコピーすると良いと思います。
アイテムの参照ページ (DispForm.aspx) に ID 列を表示する (ちょっと問題あり)
update: 2012/10/30 タグ: Office365, SharePoint 2007, SharePoint 2010, SharePoint 2013, リスト/ライブラリ, 障害/エラー | Know How
login