Durch Verwenden der Benutzeroberfläche „Korrespondenz erstellen“ von Correspondence Management können Sie Entwürfe von Briefinstanzen unter Fortschritt speichern und es gibt gesendete Briefinstanzen.
Correspondence Management bietet APIs, mit denen Sie die Listenschnittstelle erstellen können, um mit gesendeten Briefinstanzen oder Entwürfen zu arbeiten. Die APIs listen und öffnen gesendete und Entwurfsbriefinstanzen eines Agenten, damit der Agent weiterhin am Entwurf oder an der gesendeten Briefinstanz arbeiten kann.
Correspondence Management stellt APIs bereit, um Briefinstanzen mithilfe von LetterInstanceService abzurufen.
Methode | Beschreibung |
---|---|
getAllLetterInstances | Ruft Briefinstanzen anhand des Eingabeabfrageparameters ab. Um alle Briefinstanzen aufzurufen, geben Sie die Abfrageparameter als null weiter. |
getLetterInstance | Ruft die angegebene Briefinstanz basierend auf der Briefinstanz-ID auf. |
letterInstanceExists | Prüft anhand des angegebenen Namens, ob eine Briefinstanz vorhanden ist. |
LetterInstanceService ist ein OSGI-Service, dessen Instanz mit Hilfe von @Reference in Java abgerufen werden kann
Klasse oder sling.getService(LetterInstanceService. Class) in JSP.
Die folgende API findet die Briefinstanzen basierend auf dem Abfrageobjekt (Gesendet und Entwurf). Wenn das Abfrageobjekt null ist, werden alle Briefinstanzen zurückgegeben. Diese API gibt eine Liste von LetterInstanceVO-Objekten zurück, die zum Extrahieren zusätzlicher Informationen der Briefinstanz verwendet werden können
Syntax: List getAllLetterInstances(Query query) throws ICCException;
Parameter | Beschreibung |
Abfrage | Der Abfrageparameter wird verwendet, um die Briefinstanz zu finden/filtern. Hier unterstützt die Abfrage nur Attribute/Eigenschaften des Objekts auf höchster Ebene. „Abfrage“ besteht aus Anweisungen und dem „attributeName“ im Anweisungsobjekt und sollte mit dem Namen der Eigenschaft im Briefinstanzobjekt verwendet werden. |
Der folgende Code gibt die Liste der gesendeten Briefinstanzen zurück. Um nur Entwürfe zu erhalten, ändern Sie LetterInstanceType.COMPLETE.name()
in LetterInstanceType.DRAFT.name().
@Reference
LetterInstanceService letterInstanceService;
Query query = new Query();
List<LetterInstanceVO> submittedLetterInstances = new ArrayList<LetterInstanceVO>();
Statement statementForInstanceType = new Statement();
statementForInstanceType.setAttributeName("letterInstanceType");
statementForInstanceType.setOperator(Operator.EQUALS);
statementForInstanceType.setAttributeValue(LetterInstanceType.COMPLETE.name());
query.addStatement(statementForInstanceType);
submittedLetterInstances = letterInstanceService.getAllLetterInstances(query);
Der folgende Code hat mehrfache Aussagen in der gleichen Abfrage zum Filtern der Ergebnisse, basierend auf unterschiedlichen Kriterien wie von einem Benutzer gesendete Briefinstanz (Attribut gesendet von) und Typ von letterInstanceType ist ENTWURF.
@Reference
LetterInstanceService letterInstanceService;
String submittedBy = "tglodman";
Query query = new Query();
List<LetterInstanceVO> submittedLetterInstances = new ArrayList<LetterInstanceVO>();
Statement statementForInstanceType = new Statement();
statementForInstanceType.setAttributeName("letterInstanceType");
statementForInstanceType.setOperator(Operator.EQUALS);
statementForInstanceType.setAttributeValue(LetterInstanceType.COMPLETE.name());
query.addStatement(statementForInstanceType);
Statement statementForSubmittedBy = new Statement();
statementForSubmittedBy .setAttributeName("submittedby");
statementForSubmittedBy .setOperator(Operator.EQUALS);
statementForSubmittedBy .setAttributeValue(submittedBy);
query.addStatement(statementForSubmittedBy );
submittedLetterInstances = letterInstanceService.getAllLetterInstances(query);
Rufen Sie die Briefinstanz auf, die von der angegebenen Briefinstanz-ID identifiziert wird. Es wird „null“ zurückgegeben, wenn die Instanz-ID nicht übereinstimmt.
Syntax: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
Prüfen Sie anhand des angegebenen Namens, ob eine Briefinstanz vorhanden ist
Syntax: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
Parameter | Beschreibung |
---|---|
letterInstanceName | Der Name der Briefinstanz, die Sie überprüfen möchten, ob sie vorhanden ist |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
Briefinstanz kann vom Typ „Gesendet“ oder „Entwurf“ sein. Wenn die beiden Briefinstanztypen geöffnet werden, werden unterschiedliche Verhalten gezeigt:
CCR Benutzeroberfläche unterstützt den Parameter cmLetterInstanceId, der zum Neuladen des Briefs verwendet werden kann.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Sie müssen beim Neuladen einer Korrespondenz weder cmLetterId noch cmLetterName/State/Version angeben, da die gesendeten Daten bereits alle Details zu dieser Korrespondenz enthalten. RandomNo wird verwendet, um Probleme mit dem Browser-Cache zu vermeiden. Sie können Zeitstempel als zufällige Zahl verwenden.
Gesendetes PDF-Dokument kann mit der Briefinstanz-ID direkt geöffnet werden:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]