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.
Gestione della 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 di query di input. Per recuperare tutte le istanze di lettere, passa 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 una LetterInstance con il nome specificato. |
LetterInstanceService è un servizio OSGI e la relativa istanza può essere recuperata utilizzando @Reference in Java™ Class o sling.getService(LetterInstanceService. Class ) in JSP.
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 LetterInstanceVO che possono essere utilizzati per estrarre informazioni aggiuntive dell'istanza della lettera.
Sintassi: List getAllLetterInstances(Query query) throws ICCException;
Parametro | Descrizione |
query | Il parametro query viene utilizzato per trovare/filtrare l’istanza di Letter. In questo caso, la query supporta solo attributi/proprietà di livello superiore dell’oggetto. Query è costituita da istruzioni e "attributeName" utilizzato nell'oggetto Statement deve essere il nome della proprietà nell'oggetto istanza Letter. |
Il codice seguente restituisce l'elenco delle istanze di lettere inviate. Per ottenere solo le bozze, modifica il LetterInstanceType.COMPLETE.name()
a 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 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);
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 se esiste un’istanza di lettera con il nome specificato
Sintassi: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
Parametro | Descrizione |
---|---|
letterInstanceName | Nome dell’istanza della lettera che desideri verificare se esiste. |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
L'istanza della lettera può essere di tipo Inviata o Bozza. L’apertura di entrambi i tipi di istanza della lettera mostra comportamenti diversi:
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]
Non è necessario specificare cmLetterId o cmLetterName/State/Version durante il ricaricamento di una corrispondenza, in quanto i dati inviati contengono già tutti i dettagli sulla corrispondenza ricaricata. RandomNo viene utilizzato per evitare problemi di cache del browser; è possibile utilizzare una marca temporale come numero casuale.
Il PDF inviato può essere aperto direttamente utilizzando l’ID istanza della lettera:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]