API per accedere alle istanze delle lettere apis-to-access-letter-instances
Panoramica overview
Utilizzando l’interfaccia utente per la creazione della corrispondenza di Gestione corrispondenza, puoi salvare le bozze delle istanze di lettere in corso e sono presenti istanze di lettere inviate.
Gestione della corrispondenza fornisce API che consentono di creare l’interfaccia per l’inserzione in modo che funzioni con le istanze di lettere inviate o le bozze. Le API elencano e aprono le istanze di lettera inviata e bozza di un agente, in modo che l’agente possa continuare a lavorare sulle istanze di lettera bozza o inviata.
Recupero delle istanze di lettere fetching-letter-instances
Gestione della corrispondenza espone le API per recuperare le istanze di lettere tramite il servizio LetterInstanceService.
Classe o sling.getService(LetterInstanceService. Class ) in JSP.
Utilizzo di getAllLetterInstances using-nbsp-getallletterinstances
L’API seguente trova le istanze di lettere in base all’oggetto query (sia Inviato che Bozza). Se l'oggetto query è null, restituisce tutte le istanze di lettere. Questa API restituisce un elenco di oggetti LetterInstanceVO che possono essere utilizzati per estrarre informazioni aggiuntive dell'istanza della lettera.
Sintassi: List getAllLetterInstances(Query query) throws ICCException;
Esempio 1: recupera tutte le istanze di lettere di tipo INVIATO example-fetch-all-the-letter-instances-of-type-submitted
Il codice seguente restituisce l'elenco delle istanze di lettere inviate. Per ottenere solo le bozze, modifica 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);
Esempio 2: recupera tutte le istanze di lettere inviate da un utente e il tipo di istanza di lettera è BOZZA example-nbsp-fetch-all-the-letter-instances-submitted-by-a-user-and-letter-instance-type-is-draft
Il codice seguente include più istruzioni nella stessa query per ottenere i risultati filtrati in base a criteri diversi, ad esempio l'istanza della lettera inviata (attributo submit by) da un utente e il tipo di letterInstanceType è DRAFT.
@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);
Utilizzo di getLetterInstance using-nbsp-getletterinstance
Recupera l’istanza della lettera identificata dall’ID istanza della lettera specificato. Restituisce "null" se l’ID istanza non corrisponde.
Sintassi: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
Verifica dell'esistenza di LetterInstance verifying-if-letterinstance-exist
Verifica se esiste un’istanza di lettera con il nome specificato
Sintassi: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
Apertura delle istanze di lettere opening-letter-instances
L'istanza della lettera può essere di tipo Inviata o Bozza. L’apertura di entrambi i tipi di istanza della lettera mostra comportamenti diversi:
- Se è presente un’istanza di Inviata lettera, viene aperto un PDF che rappresenta l’istanza di Lettera. L’istanza della lettera inviata è persistente sul server e contiene anche dataXML e XDP elaborato, che può essere utilizzato per eseguire e personalizzare ulteriormente un caso d’uso, ad esempio la creazione di un PDF/A.
- Se è presente un’istanza Bozza lettera, l’interfaccia utente per la corrispondenza viene ricaricata nello stato precedente esatto, come era al momento della creazione della bozza
Apertura dell'istanza della bozza di lettera opening-draft-letter-instance-nbsp
L’interfaccia utente CCR supporta il parametro cmLetterInstanceId, che può essere utilizzato per ricaricare la lettera.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Apertura istanza lettera inviata opening-submitted-letter-instance
Il PDF inviato può essere aperto direttamente utilizzando l’ID istanza della lettera:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]