Mediante la IU Crear correspondencia de Administración de correspondencia, puede guardar borradores de instancias de carta en curso y hay instancias de carta enviadas.
Administración de correspondencia proporciona varias API que permiten crear la interfaz del listado para trabajar con instancias de cartas enviadas o borradores. Las API enumeran y abren las instancias de carta en Borradores y enviados de un agente, de modo que el agente pueda trabajar en las instancias de carta en Borradores o enviados.
Administración de correspondencia expone las API para recuperar instancias de carta a través del servicio LetterInstanceService.
Método | Descripción |
---|---|
getAllLetterInstances | Obtiene instancias de cartas basadas en el parámetro de consulta de entrada. Para recuperar todas las instancias de cartas, apruebe el parámetro de consulta como nulo. |
getLetterInstance | Obtiene la instancia de carta especificada en función del ID de instancia de carta. |
letterInstanceExists | Comprueba si existe una instancia de carta por el nombre dado. |
LetterInstanceService es un servicio OSGI y su instancia se puede recuperar mediante @Reference en Java™ Class o sling.getService(LetterInstanceService. Class ) en JSP.
La siguiente API encuentra las instancias de la carta en función del objeto de consulta (tanto enviados como borradores). Si el objeto de consulta es nulo, devolverá todas las instancias de cartas. Esta API devuelve una lista de LetterInstanceVO objetos, que se pueden utilizar para extraer información adicional de la instancia de carta.
Sintaxis: List getAllLetterInstances(Query query) throws ICCException;
Parámetro | Descripción |
query | El parámetro query se utiliza para buscar/filtrar la instancia Carta. Aquí, la consulta solo admite atributos o propiedades de nivel superior del objeto. Query consiste en instrucciones y el “attributeName” utilizado en el objeto de instrucción debe ser el nombre de la propiedad en el objeto de la instancia Carta. |
El siguiente código devuelve la lista de instancias de carta enviadas. Para obtener solo borradores, cambie el 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);
El siguiente código tiene varias instrucciones en la misma consulta para obtener los resultados filtrados según diferentes criterios, como la instancia de carta enviada (atributo submittedby) por un usuario y el tipo de letterInstanceType es BORRADOR.
@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);
Recupere la instancia de carta identificada por el ID de instancia de carta dado. Devuelve “null” si no coincide el ID de instancia.
Sintaxis: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
Comprobar si existe una instancia de carta con el nombre dado
Sintaxis: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
Parámetro | Descripción |
---|---|
letterInstanceName | Nombre de la instancia de carta que desea comprobar si existe. |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
La instancia de carta puede ser del tipo Enviado o Borrador. Al abrir ambos tipos de instancias de cartas, se muestran comportamientos diferentes:
La interfaz de usuario de CCR admite el parámetro cmLetterInstanceId, que se puede utilizar para volver a cargar la carta.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
No es necesario especificar cmLetterId o cmLetterName/State/Version al volver a cargar una correspondencia, ya que los datos enviados ya contienen todos los detalles sobre la correspondencia que se recarga. RandomNo se usa para evitar problemas con la caché del explorador, puede usar una marca de tiempo como un número aleatorio.
El PDF enviado se puede abrir directamente mediante el ID de instancia de carta:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]