В Salesforce Apex идентификатор потока обращения — это уникальный идентификатор, связанный с потоком обращения. Это полезно для выполнения различных операций, связанных с управлением делами. В этой статье мы рассмотрим несколько методов получения идентификатора потока дела в Apex, а также примеры кода, которые помогут вам понять реализацию.
Метод 1: SOQL-запрос
Один из самых простых способов получить идентификатор потока дела — запросить объект Case в Apex. Вот пример:
String caseThreadId = [SELECT CaseThread.Id FROM Case WHERE Id = :caseId].CaseThread.Id;
Метод 2: объект CaseComment
Объект CaseComment в Salesforce содержит идентификатор потока обращения. Вы можете запросить записи CaseComment, относящиеся к конкретному делу, и получить оттуда идентификатор потока дела. Вот пример:
List<CaseComment> caseComments = [SELECT Id, ParentId, CaseThread.Id FROM CaseComment WHERE ParentId = :caseId];
if (!caseComments.isEmpty()) {
String caseThreadId = caseComments[0].CaseThread.Id;
}
Метод 3: объект CaseThread
Вы можете напрямую запросить объект CaseThread в Apex, чтобы получить идентификатор потока дела. Вот пример:
CaseThread caseThread = [SELECT Id FROM CaseThread WHERE Id = :caseThreadId];
String caseThreadId = caseThread.Id;
Метод 4: Объект EmailMessage
Если обращение связано с EmailMessage, вы можете получить идентификатор потока обращения из объекта EmailMessage. Вот пример:
EmailMessage emailMessage = [SELECT Id, ParentId, ThreadIdentifier FROM EmailMessage WHERE ParentId = :caseId];
String caseThreadId = emailMessage.ThreadIdentifier;
Метод 5: настраиваемое поле формулы
Вы можете создать настраиваемое поле формулы в объекте «Обращение», чтобы автоматически заполнять идентификатор потока обращения. Формула может напрямую ссылаться на поле CaseThread.Id. Вот пример:
public class CaseHelper {
public static String getCaseThreadId(Case caseRecord) {
return caseRecord.ThreadId__c;
}
}