Calling a REST API apex class from apex trigger and seeing below errors.
Response:
System.HttpResponse[Status=Internal Server Error, StatusCode=500] Response Body: {"status":"error", "message":"List has no rows for assignment to SObject"}
Response Status Code: 500
Apex Trigger publishing platform event:
trigger TeamMemberTrigger on fHCM2__Team_Member__c (after insert) { List<TeamMemberEvent__e> eventList = new List<TeamMemberEvent__e>(); system.debug('Trigger.New===>'+Trigger.New); for (fHCM2__Team_Member__c tm : Trigger.New) { TeamMemberEvent__e eventInstance = new TeamMemberEvent__e( TeamMemberId__c = tm.Id ); eventList.add(eventInstance); } system.debug('eventList===>'+eventList); if (!eventList.isEmpty()) { EventBus.publish(eventList); } } Apex Trigger calling queueable apex
trigger TeamMemberEventTrigger on TeamMemberEvent__e (after insert) { System.debug('TeamMemberEventTrigger invoked'); List<Id> teamMemberIds = new List<Id>(); for (TeamMemberEvent__e event : Trigger.New) { teamMemberIds.add(event.TeamMemberId__c); } System.enqueueJob(new PostTeamMemberToCertinia(teamMemberIds)); } Apex Class :
public class PostTeamMemberToCertinia implements Queueable, Database.AllowsCallouts { private List<Id> teamMemberIds; public PostTeamMemberToCertinia(List<Id> ids) { this.teamMemberIds = ids; } List<fHCM2__Team_Member__c> teamMembers = new List<fHCM2__Team_Member__c>(); teamMembers = [SELECT fHCM2__Unique_Id__c, fHCM2__First_Name__c, fHCM2__Surname__c, fHCM2__Email__c FROM fHCM2__Team_Member__c WHERE Id IN :teamMemberIds]; // Create a list of wrapper objects List<TeamMemberWrapper> tmWrappers = new List<TeamMemberWrapper>(); for (fHCM2__Team_Member__c teamMember : teamMembers) { TeamMemberWrapper tmWrapper = new TeamMemberWrapper( teamMember.fHCM2__Unique_Id__c, teamMember.fHCM2__First_Name__c, teamMember.fHCM2__Surname__c, teamMember.fHCM2__Email__c ); tmWrappers.add(tmWrapper); } // Convert the list of wrapper objects to JSON String requestBody = JSON.serialize(tmWrappers); // Create the HTTP request HttpRequest req = new HttpRequest(); req.setEndpoint('callout:CertiniaNamedCred/services/apexrest/ReceiveTeamMember/'); //services/apexrest/ReceiveTeamMember req.setMethod('POST'); req.setHeader('Content-Type', 'application/json'); req.setBody(requestBody); // Send the request Http http = new Http(); HttpResponse res = new HttpResponse(); try { res = http.send(req); System.debug('Response ===> ' + res); System.debug('Response Status: ' + res.getStatus()); System.debug('Response Body: ' + res.getBody()); System.debug('Response Status Code: ' + res.getStatusCode()); System.debug('Response Header Keys: ' + res.getHeaderKeys()); } catch(Exception e) { System.debug('Error: ' + e.getMessage()); System.debug('Error Line Number: ' + e.getLineNumber()); System.debug('Error Stack Trace String: ' + e.getStackTraceString()); System.debug('Error Type Name: ' + e.getTypeName()); System.debug('Error Cause: ' + e.getCause()); } } public class TeamMemberWrapper { public String tmUniqueId; public String tmFirstName; public String tmSurname; public String tmEmail; public TeamMemberWrapper(String uId, String fName, String sName, String emailAddr) { tmUniqueId = uId; tmFirstName = fName; tmSurname = sName; tmEmail = emailAddr; } } }