私はサンドボックスから取り組んでおり、カスタムオブジェクトMember_Vendor_del__cの下でVendor_Rep__c(Lookup Field)を自動的に更新しようとしています。メンバーベンダーのレコードが作成または編集されたときに、ベンダーの担当者を更新することを希望します。Salesforceの検索フィールドを更新するには、Apexクラスまたはトリガーだけが必要ですか?
私は私が必要とするものを習得する必要がなくなったと考え始めているVisualforceページを作成しました。すでに掲載いくつかの質問、いくつかのApex開発者ガイドの記事を読んで、そしていくつかのチュートリアルビデオを見た後、また
public class contactsearch {
public List<Contact>searchContact(string ContactType, string MemberState, String VendorID)
{
return [Select Name From Contact
Where Contact_Type__c = 'Vendor Rep' AND States__c = :MemberState AND Contact_Vendor_ID__c = :VendorID limit 1];
}
}
:また、いくつかの助けを借りて、私はApexのクラスのために以下のコードを作成した
、私は以下のトリガーを作成しました。 (私も私は必要なものを達成するためにクラスが必要イムわからない)
trigger VendorRepUpdateTrigger on Member_Vendor_del__c (before insert, before update) {
for (Member_Vendor_del__c u : trigger.new){
if (u.Vendor_Rep__c == null){
u.Vendor_Rep__c = [Select Name
From Contact
Where Contact_Type__c = 'Vendor Rep' AND States__c = :member_vendor_del__c.Member_State__c AND Contact_Vendor_ID__c = :member_vendor_del__c.Vendor_ID__c limit 1];
}
}
}
私は私のトリガー
Schema.SObjectFieldの「無効なバインド式タイプでライン6については、以下のエラーメッセージが出続けますString型の列の場合 "
このエラーを受け取り、このトリガーをプロダクションにして100%作業するにはどうすればよいですか?私はApexクラスが必要なのでしょうか?
私は名前の代わりにIDの代わりに名前を使用しようとしていると信じていますが、私はそれにショットを付けます。 また、「bulkify」に精通していません。私は間違いなく最後の終了中括弧の直前にSOQLクエリを移動することができます。 forループ内にSOQL結果を追加するために必要なことは何か特別なことはありますか? –
私はあなたのコードに別の変更を加えました、そして、それは実際の問題だと私は信じています。フィールドのバインディングは、SOQLクエリの条件のsObjectを使用して行われます。私は "member_vendor_del__c.Member_State__c"と "member_vendor_del__c.Vendor_ID__c"の代わりに "u.Member_State__c"と "u.Vendor_ID__c"を使用しました。上記のコードを試してみてください投稿 –
提案された変更を行いましたが、 5行目のメッセージ:。 リストからID –