서신 관리의 서신 UI 만들기를 사용하여 진행 중인 서신 인스턴스의 초안을 저장할 수 있으며 제출된 편지 인스턴스가 있습니다.
Correspondence Management는 제출된 편지 인스턴스 또는 초안에서 작업할 수 있도록 목록 인터페이스를 구축할 수 있는 를 사용하는 API를 제공합니다. API 목록 및 열린 에이전트의 제출 및 초안 편지 인스턴스로 인해 에이전트가 초안 또는 제출된 편지 인스턴스에서 계속 작업할 수 있습니다.
서신 관리는 LetterInstanceService 서비스를 통해 편지 인스턴스를 가져오도록 API를 표시합니다.
메서드 | 설명 |
---|---|
getAllLetterInstances | 입력 쿼리 매개 변수를 기반으로 문자 인스턴스를 가져옵니다. 모든 편지 인스턴스를 가져오려면 쿼리 매개 변수를 null로 전달합니다. |
getLetterInstance | 편지 인스턴스 ID를 기반으로 지정된 편지 인스턴스를 가져옵니다. |
letterInstanceExists | LetterInstance가 지정된 이름으로 존재하는지 확인합니다. |
LetterInstanceService는 OSGI 서비스이며 Java@Reference 사용하여 인스턴스를 검색할 수 있습니다
클래스 또는 sling.getService(LetterInstanceService)입니다. Class )를 JSP에 있는 Windows Media Optimizer에서 참조할 수 있습니다.
다음 API는 쿼리 개체(제출됨 및 초안 모두)를 기반으로 편지 인스턴스를 찾습니다. 쿼리 개체가 null이면 모든 편지 인스턴스를 반환합니다. 이 API는 LetterInstanceVO 문자 인스턴스의 추가 정보를 추출하는 데 사용할 수 있는 객체
구문: List getAllLetterInstances(Query query) throws ICCException;
매개변수 | 설명 |
쿼리 | 쿼리 매개 변수는 편지 인스턴스를 찾거나 필터링하는 데 사용됩니다. 이 쿼리는 객체의 최상위 속성/속성만 지원합니다. Query는 문으로 구성되며 Statement 개체에 사용되는 "attributeName"은 Letter 인스턴스 개체의 속성 이름이어야 합니다. |
다음 코드는 제출된 편지 인스턴스 목록을 반환합니다. 초안만 가져오려면 LetterInstanceType.COMPLETE.name()
to 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);
다음 코드에는 사용자가 제출한 편지 인스턴스(Attribute submittedby)와 같은 다른 기준에 따라 필터링된 결과를 얻기 위해 동일한 쿼리에 여러 개의 문이 있으며 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);
지정된 편지 인스턴스 ID로 식별된 편지 인스턴스를 가져옵니다. 인스턴스 ID가 일치하지 않으면 "null"을 반환합니다.
구문: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
Letter 인스턴스가 지정된 이름으로 존재하는지 확인합니다.
구문: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
매개변수 | 설명 |
---|---|
letterInstanceName | 편지 인스턴스가 있는지 확인할 편지 인스턴스의 이름입니다. |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
편지 인스턴스는 제출됨 또는 초안 유형일 수 있습니다. 두 문자 인스턴스 유형을 모두 열면 다른 동작이 표시됩니다.
CCR UI는 문자를 다시 로드하는 데 사용할 수 있는 cmLetterInstanceId 매개 변수를 지원합니다.
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
제출된 데이터에 이미 다시 로드되는 서신에 대한 모든 세부 사항이 포함되므로, 서신 다시 로드할 때 cmLetterId 또는 cmLetterName/State/Version을 지정할 필요가 없습니다. RandomNo는 브라우저 캐시 문제를 방지하기 위해 사용됩니다. 타임스탬프를 임의의 숫자로 사용할 수 있습니다.
제출된 PDF은 문자 인스턴스 ID를 사용하여 직접 열 수 있습니다.
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]