【问题标题】:How to create two triggers for the same object如何为同一个对象创建两个触发器
【发布时间】:2021-08-30 12:30:57
【问题描述】:

我有一个数据表,如果客户选择多个候选人,它将自动创建工作申请和审查记录。我为创建审查记录做了一个触发器,但问题是还有另一个要求,工作申请的面试官应该插入到审查记录中。我正在尝试创建两个将在 Job 应用程序对象上触发的触发器,但我之前没有尝试在一个对象中执行两个触发器,所以我被卡住了。

这个想法是,如果我在工作申请中编辑面试字段,那么审核对象上的面试字段也会被更新。



trigger JobApplicationTrigger on Job_Application__c (after insert) {
    if (Trigger.isAfter) {
        if(Trigger.isInsert) {
            List<Review__c> reviewList = new List<Review__c>();
    
                for(Job_Application__c jobApp : trigger.new) {
                    //review records should only contain  Interviewer and Job Application. SELECT Interviewer__c, Name FROM Job_Application__c
        
                    //create review records
                    Review__c newRev = new Review__c();
                    newRev.Interviewer__c = jobapp.Interviewer__c;
                    newRev.Job_Application__c = jobApp.Id;
                    reviewList.add(newRev);
                }
    
    
                if (reviewList.size() > 0) {
                    insert reviewList;
                }
        }   


    }

}





【问题讨论】:

    标签: triggers apex apex-code lwc


    【解决方案1】:

    根据您的最后陈述'我的想法是,如果我在工作申请中编辑面试字段,则审核对象上的面试字段也会被更新。' 您不必为此创建新触发器。您可以使用现有的。

    下面的sn-p会帮到你。

    trigger JobApplicationTrigger on Job_Application__c(after insert, after update) {
      if (Trigger.isAfter) {
        if (Trigger.isInsert) {
          List<Review__c> reviewList = new List<Review__c>();
    
          for (Job_Application__c jobApp : Trigger.new) {
            //review records should only contain  Interviewer and Job Application. SELECT Interviewer__c, Name FROM Job_Application__c
    
            //create review records
            Review__c newRev = new Review__c();
            newRev.Interviewer__c = jobapp.Interviewer__c;
            newRev.Job_Application__c = jobApp.Id;
            reviewList.add(newRev);
          }
    
          if (reviewList.size() > 0) {
            insert reviewList;
          }
        }
        // New Code
        if (Trigger.isUpdate) {
          List<Review__c> reviewList = new List<Review__c>();
    
          for (Job_Application__c jobApp : Trigger.new) {
          //create review records if value of Interviewer__c is changed on Job_Application__c
            if(jobapp.Interviewer__c!=Trigger.oldMap(jobApp.Id.Interviewer__c)){
              Review__c newRev = new Review__c();
              newRev.Interviewer__c = jobapp.Interviewer__c;
              newRev.Job_Application__c = jobApp.Id;
              reviewList.add(newRev);
            }
          }
    
          if (reviewList.size() > 0) {
            // update exising review records
            update reviewList;
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多