AEM Forms 작업 공간에서 여러 양식 유형이 원활하게 지원됩니다. 이러한 쿠키에는 다음이 포함됩니다.
이 문서에서는 의미론적 사용자 지정/구성 요소 재사용 관점에서 이러한 렌더러의 작업을 설명하므로 변환 없이 고객 요구 사항을 충족할 수 있습니다. AEM Forms 작업 공간에서는 모든 사용자 인터페이스/시맨틱 변경을 허용하지만, 다른 양식 유형의 렌더링 로직은 변경하지 않는 것이 좋습니다. 그렇지 않으면 결과를 예측할 수 없습니다. 이 문서는 동일한 양식 렌더링을 지원하고, 서로 다른 포털에서 동일한 작업 공간 구성 요소를 사용하며, 렌더링 논리 자체를 수정하는 것이 아닌,
PDF forms은 PdfTaskForm View
에 의해 렌더링됩니다.
XDP 양식이 PDF로 렌더링되면 FormsAugmenter 서비스에 FormBridge
JavaScript™이 추가됩니다. 이 JavaScript™(PDF 양식 내부)는 양식 제출, 양식 저장 또는 양식 오프라인과 같은 작업을 수행하는 데 도움이 됩니다.
AEM Forms 작업 영역에서 PDFTaskForm 보기는 FormBridge
Javascript와 통신하며, /lc/libs/ws/libs/ws/pdf.html
에 있는 중간 HTML을 통해 전달됩니다. 흐름은 다음과 같습니다.
PDFTaskForm 보기 - pdf.html
window.postMessage
/ window.attachEvent('message')
을 사용하여 통신합니다.
이 방법은 상위 프레임과 iframe 간의 표준 통신 방법입니다. 이전에 연 PDF forms의 기존 이벤트 리스너는 새 이벤트를 추가하기 전에 제거됩니다. 이 삭제는 작업 세부 사항 보기의 양식 탭과 기록 탭 간의 전환을 고려합니다.
pdf.html - FormBridge
렌더링된 PDF 내의 javascript
pdfObject.postMessage
/ pdfObject.messageHandler
을 사용하여 통신합니다.
이 방법은 HTML에서 PDF Javascript와 통신하는 표준 방법입니다. 또한 PdfTaskForm 보기에서 일반 PDF를 관리하고 명확하게 렌더링합니다.
PdfTaskForm 보기의 pdf.html / 컨텐츠를 수정하지 않는 것이 좋습니다.
새 HTML 양식이 NewHTMLTaskForm 보기에 의해 렌더링됩니다.
XDP Form이 CRX에 배포된 모바일 양식 패키지를 사용하여 HTML로 렌더링되는 경우 양식에 추가 FormBridge
javascript가 추가되고, 이렇게 하면 양식 데이터를 저장하고 제출하는 다른 방법이 표시됩니다.
이 Javascript는 위의 PDF forms에서 참조한 것과는 다르지만 유사한 목적을 제공합니다.
NewHTMLTaskForm 보기의 내용은 수정하지 않는 것이 좋습니다.
Flex Forms은 SwfTaskForm으로 렌더링되고 가이드는 각각 HtmlTaskForm 보기로 렌더링됩니다.
AEM Forms 작업 영역에서 이러한 뷰는 /lc/libs/ws/libs/ws/WSNextAdapter.swf
에 있는 중간 SWF를 사용하여 플렉스 양식/가이드를 구성하는 실제 SWF와 통신합니다
통신은 swfObject.postMessage
/ window.flexMessageHandler
을 사용하여 발생합니다.
이 프로토콜은 WsNextAdapter.swf
에 의해 정의됩니다. 이전에 연 SWF Forms의 기존 flexMessageHandlers
는 새 SWF Forms를 추가하기 전에 제거됩니다. 논리는 작업 세부 사항 보기의 양식 탭과 기록 탭 간의 전환을 고려합니다. WsNextAdapter.swf
저장 또는 제출과 같은 다양한 양식 작업을 수행하는 데 사용됩니다.
WSNextAdapter.swf
또는 SwfTaskForm / HtmlTaskForm 보기의 내용을 수정하지 않는 것이 좋습니다.
타사 응용 프로그램이 ExtAppTaskForm 보기를 사용하여 렌더링됩니다.
AEM Forms 작업 공간 커뮤니케이션에 대한 타사 애플리케이션
AEM Forms 작업 영역이 window.global.postMessage([Message],[Payload])
에서 수신 대기합니다.
[] 메시지는 SubmitMessage
| CancelMessage
| ErrorMessage
| actionEnabledMessage
in runtimeMap
. 타사 애플리케이션은 이 인터페이스를 사용하여 AEM Forms 작업 공간에 필요에 따라 알려야 합니다. 작업 창을 정리할 수 있도록 작업이 제출된 시점을 AEM Forms 작업 영역에서 알고 있어야 하므로 이 인터페이스를 사용하는 것은 필수입니다.
AEM Forms 작업 공간과 타사 애플리케이션 통신
AEM Forms 작업 공간의 직접 작업 단추가 표시되면 window.[External-App-Name].getMessage([Action])
을 호출합니다. 여기서 [Action]
은 routeActionMap
에서 읽습니다. 타사 애플리케이션은 이 인터페이스를 수신한 다음 postMessage ()
API를 통해 AEM Forms 작업 공간에 알려야 합니다.
예를 들어 Flex 애플리케이션에서 이 통신을 지원하도록 ExternalInterface.addCallback('getMessage', listener)
을 정의할 수 있습니다. 타사 응용 프로그램이 자체 단추를 통해 양식 제출을 처리하려는 경우 hideDirectActions = true() in the runtimeMap
을 지정해야 하며 이 수신기를 건너뛸 수 있습니다. 따라서 이 구문은 선택 사항입니다.
AEM Forms 작업 공간에서 서신 관리 통합에서 서신 관리와 관련된 타사 애플리케이션 통합에 대해 자세히 읽어볼 수 있습니다.