Dynamics CRM Online 2015 Update 1 新機能: Web API 開発者プレビュー その 12
みなさん、こんにちは。
前回に引き続き Dynamics CRM Online 2015 Update 1 で提供される
Web API 開発者プレビューを T4 テンプレートで作成したクライアント
で利用する方法について紹介します。連載記事になるため以下の記事を
事前にご覧ください。
Web API 開発者プレビュー その 1
Web API 開発者プレビュー その 2
Web API 開発者プレビュー その 10
Web API 開発者プレビュー その 11
今回は T4 テンプレートで作成したクライアントを利用したレコードの
作成、更新、削除を紹介します。
レコードの作成
1. 前回作成した Visual Studio ソリューションを開き、Program.cs
ファイルを開きます。新しく以下のメソッドを追加します。
public void CRUDRun(string accessToken)
{
// クライアントの作成
CrmODataClient client = new CrmODataClient(new Uri(serverUrl + "/api/data/"));
client.SendingRequest2 += (s, e) => { e.RequestMessage.SetHeader("Authorization", "Bearer " + accessToken); };
}
2. 以下の using ステートメントを追加します。
using Microsoft.OData.Client;
3. Main メソッドの以下のコードを書き換えて、新しいメソッドを
呼ぶように変更します。
元)
app.Run(result.AccessToken);
変更後)
app.CRUDRun(result.AccessToken);
4. 新しく追加した CRUDRunメソッド内に以下のコードを追加します。
// 取引先企業のコレクションを作成
DataServiceCollection<Account> accounts = new DataServiceCollection<Account>(client);
// 取引先企業レコードをインスタンス化
Account account = new Account();
// コレクションに追加
accounts.Add(account);
// 値を指定
account.Accountid = Guid.NewGuid();
account.Name = "サンプル取引先企業";
account.Accountnumber = "SampleAccountNumber";
5. 最後に変更を保存してレコードを作成します。この際、指定した
値以外は送信しないよう、SaveChangesOption を指定します。
client.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
Console.WriteLine("レコードを作成しました。");
動作確認
1. F5 キーを押下してプログラムを実行します。
2. 認証ダイアログが表示されたらログインします。
3. 処理が完了したらブラウザでレコードが作成されたか確認します。
4. 作成したレコードは一旦削除しておきます。
レコードの更新
次に追加したレコードを更新します。
1. CRUDRun メソッドの最後に以下のコードを追加します。
// 取引先企業の更新
account.Name = account.Name + " 更新";
2. 変更を保存してレコードを作成します。この際、指定した
値以外は送信しないよう、SaveChangesOption を指定します。
client.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
Console.WriteLine("レコードを更新しました。");
動作確認
1. F5 キーを押下してプログラムを実行します。
2. 認証ダイアログが表示されたらログインします。
3. 結果を確認します。
4. 作成したレコードは一旦削除しておきます。
レコードの削除
最後にレコードを削除します。CRUDRun メソッドの最後に以下の
コードを追加します。
// レコードをクライアントから削除
client.DeleteObject(account);
// 変更の保存
client.SaveChanges();
Console.WriteLine("レコードを削除しました。");
動作確認
1. F5 キーを押下してプログラムを実行します。
2. 認証ダイアログが表示されたらログインします。
3. 結果を確認します。
以下に今回追加したメソッドを示します。
using Microsoft.OData.Client;
public void CRUDRun(string accessToken)
{
// クライアントの作成
CrmODataClient client = new CrmODataClient(new Uri(serverUrl + "/api/data/"));
client.SendingRequest2 += (s, e) => { e.RequestMessage.SetHeader("Authorization", "Bearer " + accessToken); };
// 取引先企業のコレクションを作成
DataServiceCollection<Account> accounts = new DataServiceCollection<Account>(client);
// 取引先企業レコードをインスタンス化
Account account = new Account();
// コレクションに追加
accounts.Add(account);
// 値を指定
account.Accountid = Guid.NewGuid();
account.Name = "サンプル取引先企業";
account.Accountnumber = "SampleAccountNumber";
client.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
Console.WriteLine("レコードを作成しました。");
// 取引先企業の更新
account.Name = account.Name + " 更新";
client.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
Console.WriteLine("レコードを更新しました。");
// レコードをクライアントから削除
client.DeleteObject(account);
// 変更の保存
client.SaveChanges();
Console.WriteLine("レコードを削除しました。");
}
まとめ
レコードの作成、更新、削除は Dynamics CRM に依存した形ではなく
通常の OData Client をまったく同じ方法で使用できます。次回は
Action の実行を紹介します。お楽しみに!
- 中村 憲一郎