Mediante la IU Crear Correspondencia de Gestión de Correspondencia, puede guardar borradores de instancias de carta en curso y hay instancias de carta enviadas.
Correspondence Management proporciona API que permiten crear la interfaz de listado para trabajar con instancias de cartas enviadas o borradores. Las API enumeran y abren las instancias de carta en borrador y enviadas de un agente, de modo que el agente pueda seguir trabajando en las instancias de carta en borrador o enviadas.
Correspondence Management expone las API para recuperar instancias de carta a través del servicio LetterInstanceService.
Método | Descripción |
---|---|
getAllLetterInstances | Obtiene instancias de letras basadas en el parámetro de consulta de entrada. Para recuperar todas las instancias de letras, pase el parámetro de consulta como nulo. |
getLetterInstance | Obtiene la instancia de letra especificada en función del ID de instancia de letra. |
letterInstanceExists | Comprueba si existe una LetterInstance por el nombre dado. |
LetterInstanceService es un servicio OSGI y su instancia se puede recuperar mediante @Reference en Java
Class o sling.getService(LetterInstanceService. Clase ) en JSP.
La siguiente API encuentra las instancias de la carta en función del objeto de consulta (tanto Enviado como Borrador). Si el objeto de consulta es nulo entonces, devuelve todas las instancias de letras. Esta API devuelve la lista de objetos LetterInstanceVO, que pueden utilizarse para extraer información adicional de la instancia de letra
Sintaxis: List getAllLetterInstances(Query query) throws ICCException;
Parámetro | Descripción |
query | El parámetro de consulta se utiliza para buscar/filtrar la instancia Carta. En este caso, la consulta solo admite atributos o propiedades de nivel superior del objeto. La consulta consiste en instrucciones y el "attributeName" utilizado en el objeto de instrucción debe ser el nombre de la propiedad en el objeto de instancia Letter. |
El siguiente código devuelve la lista de instancias de carta enviadas. Para obtener solo borradores, cambie 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 enviado por) por un usuario y el tipo de letterInstanceType es 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);
Recupere la instancia de carta identificada por el id. de instancia de letra 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 letra que desea comprobar si existe. |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
La instancia de carta puede ser de tipo Enviado o Borrador. Al abrir ambos tipos de instancias de letras, se muestran diferentes comportamientos:
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 navegador, puede usar la marca de tiempo como un número aleatorio.
El PDF enviado se puede abrir directamente mediante el identificador de instancia de la letra:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]