Salesforceを学び始めて1週間です。
タイトルの件で、3日間実装にチャレンジし続けているのですが、一向に解決できず、エラーメッセージを読んでもわかりません。
debugもできず困り果てています。
どのようにApexトリガのコードを修正すれば望んだ機能が実装できるのか、皆様のお知恵をお借りしたいです。
##【前提】
オブジェクトは以下の2つです。
- 取引先責任者(Contact)
- 試合(Game__c)
取引先責任者オブジェクトにはカスタム項目として出場試合数(Game_c、データ型は数値)を追加しています。
試合オブジェクトには出場選手(Player1_c)のカスタム項目があり、データ型は参照関係(取引先責任者)となっています。
##【実現したいこと】
試合オブジェクトで出場選手を入れてレコードを登録すると、取引先責任者オブジェクトの該当する出場選手が含まれるレコードの出場試合数(Game__c)が「+1」される。
##【発生している問題】
試合オブジェクトで出場選手を入れてレコードを登録しようとすると「List has no rows for assignment to SObject」というエラーが出る。
エラー文の意味はわかりますが、どのようにコードを修正すれば解決できるのかわかりません。
以下がApexトリガ(AddPlayedGameTrigger)のコードです。
Apex
1trigger AddPlayedGameTrigger on Game__c (after insert) { 2 for(Game__c game : Trigger.New) { 3 // Contactの出場試合数を更新する 4 Contact contact = [SELECT Account.Name FROM Contact WHERE Name = :game.Player1__c LIMIT 1]; 5 contact.Game__c = contact.Game__c + 1; 6 upsert contact; 7 } 8}
debugをしようにも以下のようなエラーが連発して、それすらままならず途方に暮れています。
- Illegal assignment from Contact to Id
- System.StringException: Invalid id: 王城
- Unexpected token 'game'.」
debugで試したコード
Apex
1Contact contact = [SELECT Name FROM Contact WHERE Name='王城']; 2Game__c game = new Game__c(Player1__c = contact.Name); 3insert game;
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/07 22:23
2021/07/08 00:15