APIs para acessar instâncias de cartas apis-to-access-letter-instances
Visão geral overview
Usando a interface Criar correspondência do gerenciamento de correspondência, é possível salvar rascunhos de instâncias de carta em andamento e há instâncias de carta enviadas.
O Gerenciamento de correspondência fornece APIs usando as quais você pode criar a interface de listagem para trabalhar com instâncias ou rascunhos de cartas enviadas. As APIs listam e abrem instâncias de carta enviadas e de rascunho de um agente, para que o agente possa continuar trabalhando nas instâncias de rascunho ou de carta enviada.
Buscando instâncias de carta fetching-letter-instances
O Gerenciamento de correspondência expõe APIs para buscar instâncias de carta por meio do serviço LetterInstanceService.
Classe ou sling.getService(LetterInstanceService). Classe ) no JSP.
Uso de getAllLetterInstances using-nbsp-getallletterinstances
A API a seguir encontra as instâncias de carta com base no objeto de consulta (Enviado e Rascunho). Se o objeto de consulta for nulo, retornará todas as instâncias de letra. Essa API retorna a lista de LetterInstanceVO objetos, que podem ser usados para extrair informações adicionais da instância de letra
Sintaxe: List getAllLetterInstances(Query query) throws ICCException;
Exemplo 1: Buscar todas as instâncias de letra do tipo ENVIADO example-fetch-all-the-letter-instances-of-type-submitted
O código a seguir retorna a lista de instâncias de carta enviadas. Para obter somente rascunhos, altere a variável LetterInstanceType.COMPLETE.name()
para 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);
Exemplo 2: buscar todas as instâncias de letra enviadas por um usuário e o tipo de instância de letra é RASCUNHO example-nbsp-fetch-all-the-letter-instances-submitted-by-a-user-and-letter-instance-type-is-draft
O código a seguir tem várias instruções na mesma query para obter os resultados filtrados com base em critérios diferentes, como a instância de carta enviada (atributo enviado por) por um usuário e o tipo de 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);
Uso de getLetterInstance using-nbsp-getletterinstance
Busque a instância da carta identificada pela id de instância da carta fornecida. Retorna "null se a ID da instância não corresponder.
Sintaxe: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
Verificando se a LetterInstance existe verifying-if-letterinstance-exist
Verifique se existe uma Instância de Carta com o nome especificado
Sintaxe: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
Abertura de instâncias de carta opening-letter-instances
A Instância da Carta pode ser do tipo Enviado ou Rascunho. Abrir ambos os tipos de instância de letra mostra comportamentos diferentes:
- No caso de Instância de carta enviada, um PDF representando a instância de carta é aberto. A instância da Carta Enviada persistente no servidor também contém o dataXML & processado XDP, que pode ser usado para realizar e mais usar um caso personalizado, como criar um PDF/A.
- No caso de instância de carta de rascunho, a interface do usuário de criação de correspondência é recarregada para o estado anterior exato, como durante o momento em que o rascunho foi criado
Abrindo Instância de Carta de Rascunho opening-draft-letter-instance-nbsp
A interface do usuário do CCR é compatível com o parâmetro cmLetterInstanceId, que pode ser usado para recarregar a letra.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Abrindo a instância da carta enviada opening-submitted-letter-instance
O PDF enviado pode ser aberto diretamente usando a ID da instância da carta:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]