Sie befinden sich hier:
Hinzufügen von Apex-Briefvorlagenfeldern zu einer Eingabeaufforderungsvorlage für die Feldgenerierung
Erstellen Sie eine Eingabeaufforderungsvorlage für die Feldgenerierung, die Apex verwendet.
Erforderliche Editionen
| Verfügbarkeit: Lightning Experience |
| Verfügbarkeit: Enterprise, Performance und Unlimited Edition mit dem Add-On "Einstein für die Plattform", "Einstein" oder "Agentforce für den Vertrieb oder Service" oder "Agentforce Foundations" |
| Erforderliche Benutzerberechtigungen | |
|---|---|
| Erstellen und Verwalten von Eingabeaufforderungsvorlagen im Eingabeaufforderungsgenerator: | Berechtigungssatz "Manager für Eingabeaufforderungsvorlagen"
ODER Berechtigungssatz "Anwendung anpassen" |
Angenommen, Sie möchten dem Vertriebsteam Ihres Unternehmens minutengenaue Zusammenfassungen der Kundenvorgänge für einen bestimmten Kunden bereitstellen, bevor es Kundenanrufe tätigt. Derselbe Anwendungsfall wurde im Flow-Abschnitt verwendet.
Diesmal möchten Sie eine Eingabeaufforderungsvorlage zur Feldgenerierung erstellen, die eine Apex-Klasse integriert, die Kundenvorgangsdaten für eine Zusammenfassung der Felder abruft.
Im Folgenden finden Sie die Apex-Klasse, auf die wir als Ressource in einer Aufforderungsvorlage zugreifen.
public class OpenCasesPrompt {
@InvocableMethod(label='Open Cases'
description='Find Cases for an Account'
CapabilityType='PromptTemplateType://einstein_gpt__fieldCompletion')
public static List<Response> getCasesPrompt(List<Request> requests) {
// Validate the expected number of requests as an input
if (requests.size() != 1)
throw new ListException('The requests list must contain one entry only');
Account a = requests[0].RelatedEntity;
ID searchAcctId = a.Id;
List<Case> cases =
[SELECT Id, Subject, Description
FROM Case
WHERE AccountId = :searchAcctId AND Status != 'Closed'
WITH USER_MODE];
string responseData = null;
if(cases.isEmpty()) {
responseData = 'There are no open cases.';
} else {
for(Case c : cases) {
responseData =
(responseData != null) ? responseData + '\n' : '';
responseData += String.format('Case details: {0}, {1}.',
new List<Object>{c.Subject, c.Description});
}
}
List<Response> responses = new List<Response>();
Response res = new Response();
res.Prompt = responseData;
responses.add(res);
return responses;
}
public class Request {
@InvocableVariable(required=true)
public Account RelatedEntity;
}
public class Response {
@InvocableVariable
public String Prompt;
}
}Die Anforderungen an die Apex Klasse werden unter Grounding with Apex Merge Fields erläutert.
Die Testabdeckung ist wichtig. Fügen Sie daher eine Testklasse hinzu. Die Testklasse simuliert die vom Eingabeaufforderungsgenerator gesendeten Daten. Es werden zwei Testfälle bereitgestellt: eine für den Fall, dass Ereignisse gefunden werden, und eine für den Fall, dass keine Ereignisse vorhanden sind.
@IsTest
public class OpenCasesPrompt_Test {
@IsTest
public static void findMatchingCasesForAccount() {
Account a = new Account(Name='Test Account');
insert a;
Case c1 = new Case(Subject='Test Case', Description='Important Case',
Status='New', AccountId=a.id);
Case c2 = new Case(Subject='Test Case 2',
Description='Case Description', Status='In-progress',
AccountId=a.id);
Case c3 = new Case(Subject='Test Case Closed',
Description='Closed Case', Status='Closed', AccountId=a.id);
insert new List<Case>{c1, c2, c3};
List<OpenCasesPrompt.Request> requestsInput
= new List<OpenCasesPrompt.Request>();
OpenCasesPrompt.Request request = new OpenCasesPrompt.Request();
request.RelatedEntity = a;
requestsInput.add(request);
Test.startTest();
List<OpenCasesPrompt.Response> responses =
OpenCasesPrompt.getCasesPrompt(requestsInput);
Test.stopTest();
Assert.areEqual(1, responses.size());
OpenCasesPrompt.Response response = responses[0];
Assert.areEqual('Case details: Test Case, Important Case.\n' +
'Case details: Test Case 2, Case Description.',
response.Prompt);
}
@IsTest
public static void noCasesForAccountResponse() {
List<OpenCasesPrompt.Request> requestsInput
= new List<OpenCasesPrompt.Request>();
OpenCasesPrompt.Request request = new OpenCasesPrompt.Request();
request.RelatedEntity = new Account();
requestsInput.add(request);
List<OpenCasesPrompt.Response> responses =
OpenCasesPrompt.getCasesPrompt(requestsInput);
Assert.areEqual(1, responses.size());
OpenCasesPrompt.Response response = responses[0];
Assert.areEqual('There are no open cases.', response.Prompt);
}
}
Da die Apex Klasse jetzt bereit ist, wollen wir sie im Eingabeaufforderungsgenerator aufrufen. Zuvor müssen Sie ein benutzerdefiniertes Feld namens "Übersicht über offene Kundenvorgänge" für das Account-Objekt erstellen. Das benutzerdefinierte Feld sollte den Datentyp "Textbereich (Lang)" aufweisen. Informationen dazu finden Sie im Thema zum Erstellen benutzerdefinierter Felder. Melden Sie sich ab und erneut an, damit das neue benutzerdefinierte Feld im Eingabeaufforderungsgenerator angezeigt wird.
Erstellen Sie im Eingabeaufforderungsgenerator eine neue Eingabeaufforderungsvorlage.
- Wählen Sie für "Aufforderungsvorlagentyp" die Option Feldgenerierung aus.
- Geben Sie als Namen der Aufforderungsvorlage Apex: Fassen Sie offene Kundenvorgänge zusammen.
- Wählen Sie für das Objekt Account aus.
- Wählen Sie für das Objektfeld Übersicht über offene Kundenvorgänge aus.
- Lassen Sie das Feld Beschreibung leer.
- Klicken Sie auf Erstellen und Sie werden zur Arbeitsumgebung der Aufforderungsvorlage umgeleitet.
- Suchen Sie in der Bibliothek für Beispielaufforderungsvorlagen nach der Eingabeaufforderungsvorlage für die Feldgenerierung: Zusammenfassen offener Kundenvorgänge für einen Account. Kopieren Sie diese Vorlage und fügen Sie sie in die Arbeitsumgebung der Aufforderungsvorlage ein.
-
Bevor Sie diese Vorlage im Eingabeaufforderungsgenerator ausführen können, klicken Sie im Abschnitt "Eingabeaufforderung" auf Ressource einfügen. Das Suchfeld wird beim ersten Klicken auf diese Option angezeigt.
-
Löschen Sie den
<account.Id__Merge_Field>-Platzhalter. - Klicken Sie auf die Suchleiste Ressource und wählen Sie Account | Account-ID aus.
- Löschen Sie den Platzhalter <Get_Open_Cases_For_Account__Prompt__Flow>.
- Klicken Sie auf die Suchleiste "Ressource" und wählen Sie Apex aus.
- Wählen Sie Offene Kundenvorgänge aus, um Ihrer Vorlage die Apex-Klasse OpenCasesPrompt hinzuzufügen. Offene Kundenvorgänge ist das Bezeichnungsattribut, das Sie in der Apex-Klasse OpenCasesPrompt in der Anmerkung @InvocableMethod festlegen.
-
Löschen Sie den

