• jillian montague
  • NEWBIE
  • 0 Points
  • Member since 2021

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies
System.QueryException: List has no rows for assignment to SObject 
Class.IITStudyAbroadAppTrackerController.<init>: line 21, column 1

Below is my Apex class 

public with sharing class IITStudyAbroadAppTrackerController {
    
    Public id contactID {get; set;}
    Public id studyAbroadApplicationID {get; set;}
    Public Study_Abroad_Application__c studyAbroadApplication {get; set;}
    Public List<TargetX_SRMb__Essay__c> essayList {get; set;}
    Public List<Study_Abroad_Interest__c> studyAbroadInterestList {get; set;}
    Public Study_Abroad_Application__c enroll {get; set;}
    Public Study_Abroad_Application__c essay {get; set;}
    Public Study_Abroad_Application__c AppEssay{get; set;}
    Public Study_Abroad_Application__c ConEssay{get; set;}
    Public TargetX_SRMb__Application__c getapplication() {
        return null;
    }
    //Public Boolean accessError{get;set}
     
    Public IITStudyAbroadAppTrackerController(ApexPages.StandardController controller) {
        this.studyAbroadApplicationID = controller.getRecord().id;
        this.contactID = ([SELECT ID, Contact__c,Name
                           FROM Study_Abroad_Application__c
                          WHERE id = :studyAbroadApplicationID LIMIT 1]).Contact__c;
        this.studyAbroadApplication = this.queryStudyAbroadApplication();
        this.essayList = this.queryEssayList();
        this.studyAbroadInterestList = this.queryStudyAbroadInterestList();
    }
       
    Public Study_Abroad_Application__c queryStudyAbroadApplication(){
        // queryStudyAbroadApplication queries for a list of Study Abroad Application records that match the application ID, then takes the first record to return
        List<Study_Abroad_Application__c> appList = [
            SELECT ID,
            IIT_Study_Abroad_Application_Status__c,
            IIT_Study_Abroad_Advisor_Approval_Date__c,
            IIT_Banner_ID__c,
            Name
            FROM Study_Abroad_Application__c
            WHERE ID = :studyAbroadApplicationID    
        ];
        
        if(appList.size() > 0) {
            return appList[0];
        } else {
            // If the query fails to find a record, return null.  This shouldn't occur since the method uses an ID 
            return null;
        }
    }
    
    Public List<TargetX_SRMb__Essay__c> queryEssayList() {
        // queryEssayList queries for a list of Essay records that match the contact and study abroad application ID
        List<TargetX_SRMb__Essay__c> essayList = [
            SELECT ID,
            TargetX_SRMb__Contact__c,
            TargetX_SRMb__Application__c,
            TargetX_SRMb__Essay_File_URL__c,
            TargetX_SRMb__Essay_Key__c,
            TargetX_SRMb__Personal_Essay_Type__c,
            TargetX_SRMb__SRM_ETL_ID__c,
            TargetX_SRMb__Complete__c,
            TargetX_SRMb__IsRequired__c,
            TargetX_SRMb__RequirementID__c,
            TargetX_SRMb__Type__c,
            IIT_Insufficiency_ID__c,
            IIT_Insufficiency_ID_Desc__c
          
            FROM TargetX_SRMb__Essay__c
            WHERE TargetX_SRMb__Contact__c = :contactID AND IIT_Study_Abroad_Application__c = :studyAbroadApplicationID
        ];
        return essayList;
    }
    
    Public List<Study_Abroad_Interest__c> queryStudyAbroadInterestList() {
        // queryStudyAbroadInterestList queries for a list of Study Abroad Interest records that match the study abroad application ID
        List<Study_Abroad_Interest__c> studyAbroadInterestList = [
            SELECT ID,
            IIT_Contact__c,
            IIT_Available_Fall__c,
            IIT_Available_Spring__c,
            IIT_Available_Summer__c,
            Elevate_Study_Abroad_Opportunities__c,
            IIT_Opportunity_Type__c,
            IIT_Study_Abroad_Program_Start_Date__c,
            IIT_Study_Abroad_Program_End_Date_del__c
            FROM Study_Abroad_Interest__c
            WHERE IIT_Study_Abroad_Application__c = :studyAbroadApplicationID
        ];
        return studyAbroadInterestList;
    }
}