日付と時刻指定でアイテムを公開する([now]が無いので無理やり)

SharePointのリスト(掲示板)のビューはフィルタ条件指定をすることで「指定日を過ぎたら表示」は容易に設定できます。ところが「指定日時を過ぎたら」となるとこれが難しい。今日を示す [TODAY] 変数はあるのですが、今を反映する [NOW] 変数が無いのです。

実現する方法はいくつかありますが、最も簡単なのが SharePoint Desiger でワークフローをデザインする手法です。やや無理やりではありますが、標準機能だけでだれでも出来る、という意味では実用性がありますので以下、ご紹介します。

まず同じ設計のリストを二つつくります。ここでは分かりやすく「表」と「裏」です。

設計はこんな感じ。お知らせリストテンプレートに「公開日」という列を追加しただけです。公開日は必ず「日付と時刻」形式にしてください(それなら公開日時、にするべきでした…)

掲示板「裏」に、SharePoint Desiger でワークフローを適用します。開始オプションは「手動」のみです。

最初のステップは「指定した日まで停止する」アクションです。

「時刻」をクリックして、fx() をクリックします。

ワークフロー参照は以下のように設定します。

次に、ステップを追加します。今度は「リストアイテムをコピーする」アクションを設定します。

もちろん、コピー先はお知らせ「表」リストです。

簡単ですが、ワークフローはこれで完成ですので発行して下さい。

さて、お知らせ「裏」リストにアイテムを追加します。その後、ドロップダウンメニューからワークフローを実行してください。

ワークフローが実行されると、すぐに公開日で指定した日時まで待機します。

待機が完了すると、アイテムをお知らせ「表」リストにコピーします。

これだけです。「裏」リストは管理者(コンテンツ発行者)専用として、クローズドな権限を設定すれば一般ユーザに公開前の連絡(アイテム)を見られることはありません。もちろん、「表」には普通の権限を設定します。

二つのリストをワークフローで連携(一方通行ですが)させることで、標準機能のみで「日付と日時で公開」を実現しています。大雑把な仕組みではありますが、運用的にはむしろこれくらいが良いのではと思います。

なお、ちょっとしたカスタマイズを入れることで、ひとつのリストだけでこの日時指定による公開を実現する方法もあることはあります。

Nick Grattan’s SharePoint Blog : Filtering views by Time and Date
http://nickgrattan.wordpress.com/2008/04/24/filtering-views-by-time-and-date/

ただ、CAMLでビューをカスタマイズする上、ビューを編集すると元に戻ってしまうという弱点があるので、あまりお勧めはしにくいです。


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9