Utilizzando l’interfaccia utente Crea corrispondenza di Gestione corrispondenza è possibile salvare le bozze delle istanze di lettere in corso e sono presenti istanze di lettere inviate.
Gestione corrispondenza fornisce API che consentono di creare l’interfaccia per l’inserimento nell’elenco in modo da utilizzare le istanze di lettere o le bozze inviate. Le API elencano e aprono le istanze di lettera inviate e bozza di un agente, in modo che l'agente possa continuare a lavorare sulle istanze di lettera bozza o inviate.
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, passa il parametro di query come null. |
getLetterInstance | Recupera l'istanza di lettera specificata in base all'ID dell'istanza di lettera. |
letterInstanceExists | Controlla se esiste una LetterInstance in base al nome specificato. |
LetterInstanceService è un servizio OSGI e la sua istanza può essere recuperata utilizzando @Reference in Java
Classe o sling.getService(LetterInstanceService). Classe ) in JSP.
L’API seguente trova le istanze della lettera in base all’oggetto query (Inviato e 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 della lettera
Sintassi: List getAllLetterInstances(Query query) throws ICCException;
Parametro | Descrizione |
query | Il parametro query viene utilizzato per trovare/filtrare l’istanza Letter. La query qui supporta solo gli attributi/proprietà di primo livello dell’oggetto. La query è costituita da istruzioni e il "attributeName" utilizzato nell'oggetto Statement deve essere il nome della proprietà nell'oggetto di istanza Letter. |
Il codice seguente restituisce l'elenco delle istanze di lettere inviate. Per ottenere solo le bozze, cambia il valore 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);
Il codice seguente contiene più istruzioni nella stessa query per ottenere i risultati filtrati 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);
Recupera l’istanza della lettera identificata dall’ID istanza 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 );
Controlla se esiste un'istanza di Lettera in base al nome specificato
Sintassi: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
Parametro | Descrizione |
---|---|
letterInstanceName | Nome dell'istanza di lettera che si desidera controllare se esiste. |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
L'istanza della lettera può essere di tipo Inviato o Bozza. L’apertura di entrambi i tipi di istanza della lettera mostra diversi comportamenti:
L’interfaccia utente CCR supporta il parametro cmLetterInstanceId , che può essere utilizzato per ricaricare le lettere.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Non è necessario specificare il cmLetterId o cmLetterName/State/Version al momento del ricaricamento di una corrispondenza, in quanto i dati inviati contengono già tutti i dettagli sulla corrispondenza che viene ricaricata. RandomNo viene utilizzato per evitare problemi di cache del browser, è possibile utilizzare la marca temporale come numero casuale.
Il PDF inviato può essere aperto direttamente utilizzando l’ID di istanza della lettera:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]