本稿は Office 365 Advend Calendar 2013 に参加しています。
クラウドビジネスアプリとは LightSwitch ベースの SharePoint 用アプリ(Apps for SharePoint)です。
LightSwitch ベースなので開発生産性が非常に高いのが特長です。Office 365 認証を利用できて、SharePoint Online との連携が容易なので、Office 365 を利用する企業が業務アプリをクラウド化する場合に活用できます。
本稿では SharePoint のカスタムリストを操作する方法をステップバイステップで紹介します。
操作対象のカスタムリストはこれにします。
アプリの配置のタイミングでカスタムリストを一緒に配置することもできますが、あらかじめ SharePoint Online 上で作っておきます。今回はリストを操作することに絞りましょう。
Visual Studio で新しいクラウドビジネスアプリのプロジェクトを作成したらデータソースに接続します。それに続いて [SharePoint] を選択して、開発者サイトのアドレスを入力します。
対象のリストを選択します。[ユーザー情報リスト] も必要なので一緒にインポートします。
これでカスタムリストをアプリ固有のテーブルと同じように扱えるようになりました。SharePoint 開発につきものの Load メソッドや ExecuteQuery メソッドも不要です。
画面の定義も LightSwitch 開発の流儀のままです。
サインインしているユーザーをカスタムリストの担当者列に、現在日時をカスタムリストの問い合わせ日時列に、それぞれ入れたいと思います。そのためには少しだけコーディングが必要です。LightSwitch では本当に少ないコーディングの機会です。
もちろんデモのレベルを超えるとそれなりにコードは必要ですが、それでも他の開発ツールに比べると少ないはずです。
ユーザー情報リストから特定のユーザー情報を取得するためのクエリを用意しましょう。LINQ で問い合わせてもいいのですが、せっかくの LightSwitch ですのでクエリもデザイナーを使って定義してみます。
カスタムリストの担当者列および問い合わせ日時列は、データストアに保存する直前にエンティティに代入します。 “_Inserting” メソッドを使います。
Application.Current.User が現在サインインしているユーザーです。PersonId がユーザー名(サインイン時のアカウント=メールアドレス)に相当しますので、これを先ほど定義した GetUserInfoByUserName クエリに渡します。これでサインインユーザーのユーザー情報が取得できます。
問い合わせ日時には DateTime.Now を入れておきましょう。
開発は以上です。これだけの手順でカスタムリストを読んだり書いたりが簡単にできます。
当然ですが、SharePoint Online でもちゃんと表示されますし、もちろん SharePoint Online で編集した内容も業務アプリ側でも表示されます。
カスタムリストを操作するメリットは関係する社員で情報を共有しやすいことと(Office 365 をきちんと運用していれば社員は定期的にアクセスするはず)、ワークフローを組み合わせるなどの運用がしやすいことです。
ただし前の記事のように専用の業務アプリを作るメリットもあるので、上手く組み合わせて使ってみてください。