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ências, você pode salvar rascunhos de instâncias de cartas em andamento e há instâncias de cartas enviadas.
O Gerenciamento de correspondências fornece APIs com as quais você pode criar a interface de listagem para trabalhar com instâncias de cartas enviadas ou rascunhos. As APIs listam e abrem instâncias de cartas de rascunho e enviadas de um agente, para que o agente possa continuar trabalhando nas instâncias de rascunho ou cartas enviadas.
Buscando instâncias de cartas fetching-letter-instances
O Gerenciamento de correspondências expõe as APIs para buscar instâncias de cartas por meio do serviço LetterInstanceService.
Class ou sling.getService(LetterInstanceService). Class ) em JSP.
Uso de getAllLetterInstances using-nbsp-getallletterinstances
A API a seguir encontra as instâncias de correspondência com base no objeto de consulta (Enviado e Rascunho). Se o objeto de consulta for nulo, ele retornará todas as instâncias de letras. Esta API retorna uma lista de objetos LetterInstanceVO, que podem ser usados para extrair informações adicionais da instância de carta.
Sintaxe: List getAllLetterInstances(Query query) throws ICCException;
Exemplo 1: buscar todas as instâncias de correspondência do tipo ENVIADO example-fetch-all-the-letter-instances-of-type-submitted
O código a seguir retorna a lista de ocorrências de cartas enviadas. Para obter somente rascunhos, altere o 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 cartas enviadas por um usuário e o tipo de instância de cartas é 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 consulta para obter os resultados filtrados com base em diferentes critérios, como 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 ocorrência de carta identificada pela ID de ocorrência de carta fornecida. Ele retorna "null" se a ID da instância não for correspondente.
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 LetterInstance existe verifying-if-letterinstance-exist
Verificar se existe uma Instância de Letra 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 cartas opening-letter-instances
A Instância da Carta pode ser do tipo Enviado ou Rascunho. A abertura de ambos os tipos de ocorrência de letra mostra comportamentos diferentes:
- Se houver uma ocorrência de carta enviada, um PDF que representa a ocorrência de carta será aberto. A instância de carta enviada persistida no servidor também contém o XML de dados e o XDP processado, que podem ser usados para realizar e personalizar ainda mais o uso de um caso, como a criação de um PDF/A.
- Se houver uma ocorrência de carta de Rascunho, a interface de criação de correspondência será recarregada para o estado anterior exato como estava durante o tempo em que o rascunho foi criado
Abrindo Instância de Carta de Rascunho opening-draft-letter-instance-nbsp
A interface do CCR é compatível com o parâmetro cmLetterInstanceId, que pode ser usado para recarregar a carta.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
Abrindo instância de carta enviada opening-submitted-letter-instance
O PDF enviado pode ser aberto diretamente usando a ID de ocorrência da correspondência:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]