API para acceder a instancias de carta apis-to-access-letter-instances
Información general overview
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.
Obtener instancias de cartas fetching-letter-instances
Administración de correspondencia expone las API para recuperar instancias de carta a través del servicio LetterInstanceService.
Class o sling.getService(LetterInstanceService. Class ) en JSP.
Usar getAllLetterInstances using-nbsp-getallletterinstances
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 la lista de objetos LetterInstanceVO, que pueden utilizarse para extraer información adicional de la instancia de carta
Sintaxis: List getAllLetterInstances(Query query) throws ICCException;
Ejemplo 1: Recupere todas las instancias de cartas del tipo ENVIADO example-fetch-all-the-letter-instances-of-type-submitted
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);
Ejemplo 2: Recupere todas las instancias de carta enviadas por un usuario y el tipo de instancia de carta es BORRADOR example-nbsp-fetch-all-the-letter-instances-submitted-by-a-user-and-letter-instance-type-is-draft
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);
Usar getLetterInstance using-nbsp-getletterinstance
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 LetterInstance verifying-if-letterinstance-exist
Comprobar si existe una instancia de carta con el nombre dado
Sintaxis: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
Abrir instancias de carta opening-letter-instances
La instancia de carta puede ser de tipo Enviado o Borrador. Al abrir ambos tipos de instancias de cartas, se muestran comportamientos diferentes:
- En el caso de la instancia de carta Enviada, se abre un PDF que representa la instancia de carta. La instancia de carta enviada que persiste en el servidor también contiene el dataXML y el XDP procesados, que se pueden utilizar para llevar a cabo y utilizar un caso personalizado como la creación de un PDF/A.
- En el caso de la instancia de carta Borrador, la interfaz de usuario de creación de correspondencia se vuelve a cargar hasta el estado anterior, tal como estaba durante el momento en que se creó el borrador
Abrir instancia de carta Borrador opening-draft-letter-instance-nbsp
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]
Abrir la instancia de la carta enviada opening-submitted-letter-instance
El PDF enviado se puede abrir directamente mediante el ID de instancia de carta:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]