こんにちは。にいるです。
最近githubという単語をよく目にするので、調べてみましたが結構便利ですね。
gitを使ってみたいなーと思いつつも、現状は難しいなーとやきもきしてます笑
今日はTrailheadの「DMLを使用したレコードの操作」について、紹介したいと思います。
→Trailheadはこちらからご覧ください。
1.DMLとは?
1-1.DMLについて
DMLとはデータ操作言語です。
Apexも言語なのにその中で、また違う言語を使うのかって変な感じですね。
ApexではDMLを使用することで、レコードの作成や編集、削除を行うことができます。
サポートされている処理は下記になります。
・insert →新規作成
・update →更新
・upsert →新規作成 / 更新
・delete →削除
・undelete →元に戻す
・merge →マージ
※upsertとmergeはSalesforce特有の処理方法です。
upsertとはinsertとupdateの両方を兼ねているものです。
そのレコードがなければinsertし、レコードが存在するならupdateします。
mergeは3つのレコードを1つのレコードに統合します。
書き方としてはこのようになります。
※複数のデータを登録する場合は、Listに入れます。
1 2 3 4 5 6 7 8 |
List<Account> actList = new List<account>{ new Account(name = 'abcd'), new Account(name = '1234'), new Account(name = 'あいうえ') }; insert actList; |
ちなみにupdateやupsertなどの既存レコードを操作する場合は一意項目であるIDが必要になります。
このIDを指定することによってレコードの存在チェックをします。
1-2.DMLでの例外処理について
DMLでの操作が失敗した場合、エラーが発生します。
tryの中にDMLを書いておけば、catchでそのエラーを返して処理することもできるので、ここはしっかり書いておいた方がいいですね。
2.DMLを使用したレコードの操作
チャレンジ内容はこちらです。
クラス名はAccountHandlerにする。
アクセス修飾子がpublic staticで名前がinsertNewAccountのメソッドを作成する。
メソッドの引数は文字列型を指定してください。
メソッドによりAccountを新規作成した場合、そのレコードを返す必要がある。
空文字を引数に呼び出される場合、例外判定してnullを返す必要がある。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class AccountHandler { public static Account insertNewAccount(String Name){ try{ Account acct = new Account(Name = 'trailheadtest'); insert acct; return acct; }catch(DmlException e){ System.debug('エラーです。'+e.getMessage()); return null; } } } |
3.まとめ
ApexのTrailhead、2つ目の内容でしたが、濃いですね。
Salesforceは知っていて当然のスタンスで進めてくるので、初心者にはかなり難しいと思います。
言葉もわからないし構文もわからないし、データの持ち方もわからないし、そもそもSalesforceの標準機能をよく知らないって方だとちんぷんかんぷんですよね。
実際に僕がそうでした。。。
Apex、読めたり書けたりすると面白いんですけどね。そこに行くまでの道のりがハード!
今回のポイントはDML操作はもちろんですが、try〜catchでの例外処理も抑えとくべきポイントです。
あと、基本的なメソッドや引数の関連についてもしっかり理解しておいた方がいいなと思います。
いつかどこかでちゃんとした学習指南書的なものを作りたいですね。
他にも標準機能やアドミン試験関連、VisualforceのTrailheadなども紹介しています。
→標準機能の使い方
→アドミン試験関連
→VisualforceのTrailheadまとめ
ではでは!
コメント