Show Menu
ARGOMENTI×

API per accedere alle istanze della lettera

Panoramica

Utilizzando l’interfaccia utente Crea corrispondenza di Gestione corrispondenza, potete salvare le bozze delle istanze di lettere in corso e ci sono istanze di lettere inviate.
Gestione corrispondenza fornisce API che consentono di creare l'interfaccia di elenco per lavorare con istanze di lettere o bozze inviate. Le API elencano e aprono le istanze di lettere inviate e bozza di un agente, in modo che l'agente possa continuare a lavorare sulle istanze di lettere bozza o inviate.

Recupero delle istanze di lettere

Gestione corrispondenza espone le API per recuperare le istanze di lettere tramite il servizio LetterInstanceService.
Metodo
Descrizione
getAllLetterInstances
Recupera le istanze di lettere in base al parametro della query di input. Per recuperare tutte le istanze di lettere, passate il parametro di query come null.
getLetterInstance
Recupera l'istanza della lettera specificata in base all'ID dell'istanza della lettera.
letterInstanceExists
Controlla se esiste un'istanza LetterInstance con il nome specificato.
LetterInstanceService è un servizio OSGI e la relativa istanza può essere recuperata utilizzando @Reference in Java Classe o sling.getService(LetterInstanceService). Classe ) in JSP.

Utilizzo di getAllLetterInstances

L'API seguente trova le istanze della lettera in base all'oggetto query (sia Inviato che Bozza). Se l'oggetto query è nullo, restituisce tutte le istanze della lettera. Questa API restituisce l'elenco degli oggetti LetterInstanceVO , che possono essere utilizzati per estrarre informazioni aggiuntive sull'istanza letter
Sintassi : List getAllLetterInstances(Query query) throws ICCException;
Parametro Descrizione
query Il parametro query viene utilizzato per trovare/filtrare l’istanza Letter. Qui la query supporta solo gli attributi/proprietà di primo livello dell'oggetto. La query è costituita da istruzioni e "attributeName" utilizzato nell'oggetto Statement deve essere il nome della proprietà nell'oggetto dell'istanza Letter.

Esempio 1: Recupera tutte le istanze di lettere di tipo INVIATO

Il codice seguente restituisce l'elenco delle istanze di lettere inviate. Per ottenere solo le bozze, modificare 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: tutte le istanze di lettere inviate da un utente e da un tipo di istanza di lettera sono DRAFT

Il codice seguente contiene più istruzioni nella stessa query per filtrare i risultati in base a criteri diversi, come l'istanza di lettera inviata (attributo inviato da) 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

Recupera l'istanza della lettera identificata dall'ID dell'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

Controlla se esiste un'istanza Letter con il nome specificato
Sintassi : public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
Parametro
Descrizione
letterInstanceName
Nome dell’istanza della lettera che si desidera verificare se esiste.
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );

Apertura delle istanze di lettere

L'istanza Lettera può essere di tipo Inviato o Bozza. L'apertura di entrambi i tipi di istanza della lettera mostra comportamenti diversi:
  • Nel caso di un'istanza di lettera inviata, viene aperto un PDF che rappresenta l'istanza della lettera. L'istanza Letter inviata persistentemente sul server contiene anche dataXML e XDP elaborati, che possono essere utilizzati per eseguire e personalizzare ulteriormente un caso, ad esempio per creare un PDF/A.
  • Nel caso di un'istanza di lettera Bozza, l'interfaccia utente per la creazione della corrispondenza viene ricaricata allo stato precedente esatto, così come era nel momento in cui è stata creata la bozza

Apertura istanza lettera bozza

L’interfaccia utente CCR supporta il parametro cmLetterInstanceId, che può essere utilizzato per il ricaricamento della lettera.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Non è necessario specificare cmLetterId o cmLetterName/State/Version al momento del ricaricamento di una corrispondenza, poiché i dati inviati contengono già tutti i dettagli sulla corrispondenza che viene ricaricata. RandomNo è utilizzato per evitare problemi nella cache del browser, è possibile utilizzare timestamp come numero casuale.

Apertura dell'istanza della lettera inviata

Il PDF inviato può essere aperto direttamente utilizzando l'ID istanza lettera:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]