Salesforceを学び始めて1週間です。
タイトルの件で、3日間実装にチャレンジし続けています。
昨日別の質問を投稿して1つ前に進みましたが、相変わらず望んだ実装までは辿り着けず困っています。
どのようにApexトリガのコードを修正すれば望んだ機能が実装できるのか、皆様のお知恵をお借りしたいです。
##【前提】
オブジェクトは以下の2つです。
- 取引先責任者(Contact)
- 試合(Game__c)
取引先責任者オブジェクトにはカスタム項目として出場試合数(Game_c、データ型は数値)を追加しています。
試合オブジェクトには出場選手(Player1_c)のカスタム項目があり、データ型は参照関係(取引先責任者)となっています。
##【実現したいこと】
試合オブジェクトで出場選手を入れてレコードを登録すると、取引先責任者オブジェクトの該当する出場選手が含まれるレコードの出場試合数(Game__c)が「+1」される。
##【発生している問題】
試合オブジェクトで出場選手を入れてレコードを登録しようとすると「Attempt to de-reference a null object」というエラーが出る。
エラー文の意味はわかりますが、どのようにコードを修正すれば解決できるのかわかりません。
以下がApexトリガ(AddPlayedGameTrigger)のコードです。
Apex
1trigger AddPlayedGameTrigger on Game__c (after insert) { 2 for(Game__c game : Trigger.New) { 3 // Contactの出場試合数を更新する 4 Contact contact = [SELECT Game__c FROM Contact WHERE Id = :game.Player1__c LIMIT 1]; 5 contact.Game__c = contact.Game__c + 1; 6 upsert contact; 7 } 8}
debugしたところ、以下のデータが取得できました。
for(Game__c game : Trigger.New) { // Contactの出場試合数を更新する Contact contact = [SELECT Game__c FROM Contact WHERE Id = :game.Player1__c LIMIT 1]; system.debug(contact); contact.Game__c = contact.Game__c + 1; upsert contact; } debugで取得したcontactの内容↓↓ 18:07:16:007 USER_DEBUG [6]|DEBUG|Contact:{Id=0035h000007ENK6AAO}
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/08 09:09 編集