렌더러에 대한 문서 세부 사항

소개

AEM Forms 작업 영역에서 여러 양식 유형이 매끄럽게 지원됩니다. 이러한 쿠키에는 다음이 포함됩니다.

  • PDF forms(XDP / Acrobat / 일반 PDF)
  • 새로운 HTML 양식
  • 이미지
  • 제3자 응용 프로그램(예: 통신 관리)

이 문서에서는 의미론적 사용자 지정/구성 요소 재사용의 관점에서 이러한 렌더러의 작업을 설명하여 변환을 끊지 않고 고객 요구 사항을 충족할 수 있도록 합니다. AEM Forms 작업 영역에서 사용자 인터페이스/의미 변경을 허용하지만 서로 다른 양식 유형의 렌더링 논리를 변경하지 않는 것이 좋습니다. 그렇지 않으면 결과를 예측할 수 없습니다. 이 문서는 렌더링 논리 자체를 수정하지 않고 다른 포털에서 동일한 작업 영역 구성 요소를 사용하여 동일한 양식을 렌더링하는 것을 지원하는 지침/지식을 위한 것입니다.

PDF forms

PDF forms은 PdfTaskForm View에 의해 렌더링됩니다.

XDP 양식이 PDF로 렌더링될 때 FormsAugmenter 서비스에서 FormBridge JavaScript™이 추가됩니다. 이 JavaScript™(PDF 양식 내)는 양식 제출, 양식 저장 또는 오프라인 양식 작성과 같은 작업을 수행하는 데 도움이 됩니다.

AEM Forms 작업 영역에서 PDFTaskForm 보기는 /lc/libs/ws/libs/ws/pdf.html에 있는 중간 HTML을 통해 FormBridgejavascript와 통신합니다. 흐름은 다음과 같습니다.

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 Forms

새 HTML 양식은 NewHTMLTaskForm 보기로 렌더링됩니다.

XDP 양식이 CRX에 배포된 모바일 양식 패키지를 사용하여 HTML로 렌더링될 때 양식 데이터를 저장하고 제출하는 다른 방법을 표시하는 추가 FormBridge javascript도 양식에 추가합니다.

이 javascript는 위의 PDF forms에서 참조한 것과 다르지만 유사한 목적을 제공합니다.

노트

NewHTMLTaskForm 보기의 내용은 수정하지 않는 것이 좋습니다.

Flex Forms 및 안내선

Flex Forms은 SwfTaskForm으로 렌더링되고 안내선은 각각 HtmlTaskForm 보기로 렌더링됩니다.

AEM Forms 작업 영역에서 이러한 보기는 /lc/libs/ws/libs/ws/WSNextAdapter.swf에 있는 중간 SWF를 사용하여 flex 양식/안내선을 구성하는 실제 SWF와 통신합니다.

통신은 swfObject.postMessage / window.flexMessageHandler을 사용하여 발생합니다.

이 프로토콜은 WsNextAdapter.swf에 의해 정의됩니다. 이전에 연 SWF 양식의 기존 flexMessageHandlerson window 객체는 새 양식을 추가하기 전에 제거됩니다. 또한 작업 세부 사항 보기에서 양식 탭과 작업 내역 탭 간의 전환을 고려합니다. WsNextAdapter.swf 는 저장 또는 제출과 같은 다양한 양식 작업을 수행하는 데 사용됩니다.

노트

WSNextAdapter.swf 또는 SwfTaskForm/HtmlTaskForm 보기의 내용을 수정하는 것은 권장되지 않습니다.

타사 응용 프로그램(예: 통신 관리)

타사 애플리케이션은 ExtAppTaskForm 보기를 사용하여 렌더링됩니다.

AEM Forms 작업 영역 커뮤니케이션에 대한 제3자 애플리케이션

AEM Forms 작업 공간이 window.global.postMessage([Message],[Payload])에 수신됩니다.

[메시지] 는 SubmitMessage| CancelMessage| ErrorMessage| actionEnabledMessagein the runtimeMap. 필요에 따라 제3자 응용 프로그램에서 이 인터페이스를 사용하여 AEM Forms 작업 영역을 알려야 합니다. 작업 창을 정리할 수 있도록 AEM Forms 작업 영역에서 작업이 제출된 시점을 알고 있어야 하므로 이 인터페이스를 사용하는 것은 필수입니다.

AEM Forms 작업 영역을 제3자 응용 프로그램 통신으로 변환

AEM Forms 작업 영역의 직접 작업 단추가 표시되면 window.[External-App-Name].getMessage([Action])을 호출합니다. 여기서 [Action]routeActionMap에서 읽습니다. 제3자 응용 프로그램은 이 인터페이스를 수신한 다음 postMessage () API를 통해 AEM Forms 작업 영역에 알려야 합니다.

예를 들어 Flex 응용 프로그램은 ExternalInterface.addCallback('getMessage', listener)을 정의하여 이 통신을 지원할 수 있습니다. 제3자 응용 프로그램이 자체 단추를 통해 양식 제출을 처리하려는 경우 hideDirectActions = true() in the runtimeMap을 지정해야 하며 이 리스너를 건너뛸 수 있습니다. 따라서 이 구문은 선택 사항입니다.

AEM Forms 작업 공간의 메일 관리 통합에서 통신 관리와 관련하여 제3자 응용 프로그램 통합에 대해 자세히 읽을 수 있습니다.

이 페이지에서는