設定AEM Forms的本機開發環境 overview
當您將 Adobe Experience Manager Forms設定為 Cloud Service環境時,您會在雲端上設定開發、測試和生產環境。 此外,您也可以設定本機開發環境。
您可以使用本機開發環境執行以下動作,而無需登入雲端開發環境:
- 建立表單和相關資產(主題、範本、自訂提交動作等)
- 將 PDF 表單轉換為最適化表單
- 建立應用程式,依需求或以批次模式產生客戶通訊。
當本機開發執行個體或應用程式上的最適化表單或相關資產準備就緒以產生[客戶通訊]後,您可以將最適化表單或客戶通訊應用程式從本機開發環境匯出至Cloud Service環境,以進行進一步測試或移至生產環境。
您也可以在本機開發環境中開發和測試自訂程式碼,例如自訂元件和預填服務。 當自訂計畫碼測試並準備就緒時,您可以使用Cloud Service開發環境的Git存放庫來部署自訂計畫碼。
若要設定新的本機開發環境並使用它來開發活動,請依下列順序執行下列動作:
先決條件
您需要下列軟體來設定本機開發環境。 開始設定本機開發環境之前,請先下載這些專案:
從Software Distribution下載最新版本的軟體 software-distribution
若要從軟體發佈下載最新版Adobe Experience Manager as a Cloud Service SDK、Experience Manager Forms功能封存(AEM Forms附加元件)、表單參考資產或Forms Designer:
-
使用您的Adobe ID登入https://experience.adobe.com/#/downloads
note note NOTE 必須布建您的Adobe組織才能使用AEM as a Cloud Service下載AEM as a Cloud Service SDK。 -
導覽至 AEM as a Cloud Service 標籤。
-
依發佈日期遞減排序。
-
按一下最新的Adobe Experience Manager as a Cloud Service SDK、Experience Manager Forms功能封存(AEM Forms附加元件)、表單參考資產或Forms Designer。
note note NOTE 建議您下載最新版Experience Manager Forms功能封存(AEM Forms附加元件)、表單參考資產或Forms Designer,以便與Adobe Experience Manager as a Cloud Service SDK緊密相容。 -
檢閱並接受EULA。 選取 下載 按鈕。
設定AEM專案的開發工具 setup-development-tools-for-AEM-projects
Adobe Experience Manager Forms專案是自訂程式碼基底。 它包含透過Cloud Manager部署至Adobe Experience Manageras a Cloud Service的程式碼、設定和內容。 AEM專案Maven原型提供專案的基準結構。
設定下列開發工具,以用於您用於開發的Adobe Experience Manager專案:
如需設定前述開發工具的詳細指示,請參閱設定開發工具。
設定用於開發的本機Experience Manager環境
Cloud Service SDK提供QuickStart檔案。 它執行本機版本的Experience Manager。 您可以在本機執行Author或Publish例項。
雖然QuickStart提供本機開發體驗,但並未在Adobe Experience Manageras a Cloud Service提供所有功能。 因此,在將功能移至中繼或生產環境之前,請務必使用Adobe Experience Manageras a Cloud Service開發環境測試您的功能和程式碼。
若要安裝和設定本機Experience Manager環境,請執行以下步驟:
- 下載並解壓縮 Adobe Experience Manageras a Cloud ServiceSDK
- 設定作者執行個體
- 設定Publish執行個體
將Forms封存新增至本機作者和Publish執行個體,並設定Forms專用使用者 add-forms-archive-configure-users
以所列順序執行以下步驟,將Forms封存新增至Experience Manager執行個體並設定表單特定使用者:
安裝最新的Forms附加功能封存 add-forms-archive
Adobe Experience Manager Formsas a Cloud Service功能封存提供在本機開發環境中建立、樣式化和最佳化最適化Forms的工具。 安裝套件以建立最適化表單,並使用AEM Forms的各種其他功能。 若要安裝套件:
-
從Software Distribution下載並解壓縮作業系統的最新AEM Forms封存。
-
導覽至crx-quickstart/install目錄。 如果資料夾不存在,請建立它。
-
停止您的AEM執行個體,將AEM Forms附加功能封存
aem-forms-addon-<version>.far
放入安裝資料夾中。 -
移至使用中命令視窗並按
Ctrl + C
命令以重新啟動SDK。note note NOTE 建議您使用'Ctrl + C'命令重新啟動SDK。 使用替代方法重新啟動AEM SDK (例如停止Java程式)可能會導致AEM開發環境不一致。
設定使用者和許可權 configure-users-and-permissions
建立表單開發人員和表單從業人員等使用者,並將這些使用者新增到預先定義的表單群組,以向他們提供所需的許可權。 下表列出所有型別的使用者以及每種型別表單使用者的預先定義群組:
當存取最適化Forms不需要使用者驗證時,請勿將任何群組指派給這類使用者。
設定記錄檔案(DoR)的本機開發環境 docker-microservices
AEM Forms as aCloud Service提供以Docker為基礎的SDK環境,可更輕鬆開發記錄檔案並使用其他微服務。 這可讓您不再手動設定平台特定的二進位檔和調整專案。 若要設定環境:
-
安裝和配置Docker:
-
(適用於Microsoft® Windows)安裝Docker案頭。 它在您的電腦上設定
Docker Engine
和docker-compose
。 -
(Apple macOS)安裝適用於Mac的Docker Desktop。 它包括Docker引擎、Docker CLI客戶端、Docker撰寫、Docker內容信任、Kubernetes和Credential Helper。
note note NOTE -
對於Apple macOS,將包含本機AEM作者執行個體的資料夾加入允許清單。
-
適用於Windows的Docker Desktop支援兩個後端,Hyper-V
(舊版)和WSL2 (新版)。 會自動共用檔案
使用WSL2 (現代)時由Docker管理。 您必須
使用Hyper-V (舊版)時明確設定檔案共用。
-
-
建立與作者和發佈執行個體平行的資料夾(例如aem-sdk)。 例如, C:\aem-sdk。
-
解壓縮
aem-forms-addon-<version>.zip\aem-forms-addon-native-<version>.zip
檔案。 -
建立環境變數AEM_HOME,並指向本機AEM Author安裝。 例如, C:\aem\author\。
-
開啟sdk.bat或sdk.sh進行編輯。 將AEM_HOME設定為指向本機AEM Author安裝。 例如, C:\aem\author\。
-
開啟命令提示字元並瀏覽至
aem-forms-addon-native-<version>
資料夾。 -
確定您的本機AEM Author執行個體已啟動且在執行中。 執行以下命令以啟動SDK:
-
在Microsoft® Windows上
code language-shell sdk.bat start
-
Linux®或Apple macOS
code language-shell % export AEM_HOME=[local AEM Author installation] % ./sdk.sh start
note note NOTE 如果您已在sdk.sh檔案中定義環境變數,則可在命令列指定該變數。 提供在命令列定義環境變數的選項,以在不更新shell指令碼的情況下執行命令。 -
您現在可以使用本機開發環境來呈現記錄檔案。 若要測試,請上傳XDP檔案至您的環境並加以呈現。 例如,http://localhost:4502/libs/xfaforms/profiles/default.print.pdf?template=crx:///content/dam/formsanddocuments/cheque-request.xdp會將XDP檔案轉換為PDF檔案。
根據Experience Manager原型設定Forms的開發專案 forms-cloud-service-local-development-environment
使用此專案在本機Experience Manager Forms SDK上建立最適化Forms、部署設定更新、覆蓋、建立自訂最適化表單元件、測試和自訂程式碼。 在本機測試之後,您可以將專案部署到Experience Manager Formsas a Cloud Service生產和非生產環境。 部署專案時,也會部署下列AEM Forms資產:
設定AEM Archetype版本32或更新版本的專案,以透過AEM Formsas a Cloud Service取得並使用Tranquil、Urbane和Ultraminary主題。
若要設定專案:
-
在本機開發執行個體上複製Cloud Manager Git存放庫: 您的Cloud Manager Git存放庫包含預設的AEM專案。 它以AEM Archetype為基礎。 從Cloud Manager UI使用自助Git帳戶管理功能來複製您的Cloud Manager Git存放庫,以將專案引進您的本機開發環境中。 如需存取存放庫的詳細資訊,請參閱存取存放庫。
-
將Experience Manager Forms建立為[Cloud Service]專案: 根據最新的AEM Archetype或更新版本,將Experience Manager Forms建立為[Cloud Service]專案。 原型可協助開發人員輕鬆開始開發AEM Formsas a Cloud Service。 其中也包括一些範例主題和範本,可幫助您快速入門。
開啟命令提示字元並執行以下命令以建立Experience Manager Formsas a Cloud Service專案。
code language-shell mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion="41" -D appTitle=mysite -D appId=mysite -D groupId=com.mysite -D includeFormsenrollment="y" -D aemVersion="cloud"
變更上述命令中的
appTitle
、appId
和groupId
以反映您的環境。 此外,根據您的授權和需求,將includeFormsenrollment、includeFormscommunications和includeFormsheadless的值設定為y
或n
。 includeFormsheadless是根據核心元件建立最適化Forms的必要元件。-
使用
includeFormsenrollment=y
選項來包含建立Adaptive Forms所需的Forms特定設定、主題、範本、核心元件和相依性。 如果您使用Forms入口網站,請設定includeExamples=y
選項。 它也會將Forms Portal核心元件新增至專案。 -
使用
includeFormscommunications=y
選項加入Forms核心元件和加入客戶通訊功能所需的相依性。note warning WARNING - 使用版本45建立Archetype專案時,[AEM Archetype專案資料夾]/pom.xml一開始會將Forms核心元件版本設定為2.0.64。在建立或部署Archetype專案之前,請將Forms核心元件版本更新為2.0.62。
-
-
將專案部署到您的本機開發環境。 您可以使用以下命令來部署到您的本機開發環境
mvn -PautoInstallPackage clean install
如需完整的命令清單,請參閱建置和安裝
設定本機Dispatcher工具 setup-local-dispatcher-tools
Dispatcher是Apache HTTP Web伺服器模組,可在CDN和AEM Publish層級之間提供安全性與效能層。 Dispatcher是整體Experience Manager架構不可或缺的一部分,並應是本機開發環境的一部分。
執行以下步驟來設定本機Dispatcher,然後新增Forms特定規則:
設定本機Dispatcher setup-local-dispatcher
Experience Manager as a Cloud Service SDK包含建議的Dispatcher工具版本,可協助您在本機設定、驗證和模擬Dispatcher。 Dispatcher工具以Docker為基礎,提供命令列工具,將Apache HTTP Web Server和Dispatcher設定檔案傳輸為相容格式,並將其部署到Docker容器中執行的Dispatcher。
Dispatcher上的快取可讓AEM Forms在使用者端預先填入最適化Forms。 這可改善預填表單的演算速度。
如需設定Dispatcher的詳細指示,請參閱設定本機Dispatcher工具
將Forms特定規則新增至Dispatcher forms-specific-rules-to-dispatcher
執行以下步驟,為Experience Manager Formsas a Cloud Service設定Dispatcher快取:
-
開啟您的AEM專案並導覽至
\src\conf.dispatcher.d\available_farms
-
建立
default.farm
檔案的復本。 例如,forms.farm
。 -
開啟已建立的
forms.farm
檔案進行編輯,並取代下列程式碼:code language-json #/ignoreUrlParams { #/0001 { /glob "*" /type "deny" } #/0002 { /glob "q" /type "allow" } #}
替換為
code language-json /ignoreUrlParams { /0001 { /glob "*" /type "deny" } /0002 { /glob "dataRef" /type "allow" } }
-
儲存並關閉檔案。
-
移至
conf.d/enabled_farms
並建立指向forms.farm
檔案的符號連結。 -
編譯專案並將其部署至您的AEM Formsas a Cloud Service環境。
有關快取的考量事項 considerations-about-caching
-
Dispatcher快取可讓AEM Forms在使用者端預先填入最適化Forms。 這可改善預填表單的演算速度。
-
快取安全內容功能預設為停用。 若要啟用此功能,您可以執行快取安全內容文章中提供的指示
-
Dispatcher可能無法讓某些最適化Forms和相關的最適化Forms失效。 若要解決這類問題,請參閱疑難排解一節中的AEM Forms 快取。
-
快取本地化的最適化Forms:
- 使用URL格式
http://host:port/content/forms/af/<afName>.<locale>.html
來要求最適化表單的本地化版本,而非http://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
- 瀏覽器地區設定選項預設為停用。 若要變更瀏覽器地區設定,
- 使用URL格式
-
當您使用URL格式
http://host:port/content/forms/af/<adaptivefName>.html
,且組態管理員中的「使用瀏覽器地區設定」已停用時,會提供非當地語系化版本的調適型表單。 非當地語系化語言是開發最適化表單時使用的語言。 系統不會考量為瀏覽器設定的地區設定(瀏覽器地區設定),而是提供非當地語系化版本的調適型表單。 -
當您使用URL格式
http://host:port/content/forms/af/<adaptivefName>.html
,並且啟用Configuration Manager中的「使用瀏覽器地區設定」時,會提供當地語系化版本的適用性表單(如果有的話)。 當地語系化最適化表單的語言取決於瀏覽器設定的地區設定(瀏覽器地區設定)。 這會導致[只快取最適化表單]的第一個執行個體。 若要防止執行個體發生問題,請參閱疑難排解一節中的僅快取Adaptive Form的第一個執行個體。
您的本機開發環境已準備就緒。
在 AEM Forms as a Cloud Service 和本機開發環境中啟用最適化表單核心元件
在AEM Formsas a Cloud Service上啟用最適化Forms核心元件,可讓您開始建立、發佈和提供核心元件式的最適化Forms和Headless Forms,並使用AEM FormsCloud Service例項來將您的傳送至多個管道。 您需要啟用調適型表單核心元件的環境才能使用 Headless 調適型表單。
如需指示,請參閱在AEM Formsas a Cloud Service和本機開發環境中啟用最適化Forms核心元件
升級您的本機開發環境 upgrade-your-local-development-environment
將SDK升級至新版本需要取代整個本機開發環境,導致本機存放庫中的所有程式碼、設定和內容遺失。 確保任何不應銷毀的程式碼、設定或內容都會安全地提交至Git,或從本機Experience Manager例項匯出為CRX套件。
升級SDK時如何避免內容遺失 avoid-content-loss-when-upgrading--SDK
升級SDK會有效地建立全新的作者和Publish執行個體,包括新的存放庫(設定AEM專案),這表示對先前SDK的存放庫所做的任何變更都會遺失。 如需在SDK升級之間協助儲存內容的可行策略,請參閱升級AEM SDK時如何避免內容遺失
備份特定於Forms的內容,並將其匯入新的SDK環境 backup-and-import-Forms-specific-content-to-new-SDK-environment
若要將資產從現有SDK備份並移動至新的SDK環境:
-
建立現有內容的備份。
-
設定全新SDK環境。
-
將備份匯入至您的新SDK環境。
建立現有內容的備份 create-backup-of-your-existing-content
備份您的Adaptive Forms、範本、表單資料模型(FDM)、主題、設定和自訂程式碼。 您可以執行下列動作來建立備份:
-
下載最適化Forms、主題和PDF forms。
-
匯出自適應表單範本。
-
下載表單資料模型
-
匯出可編輯的範本、雲端設定和工作流程模型。 若要從您現有的SDK匯出所有先前提及的專案,請使用下列篩選器建立CRX-Package:
- /conf/ReferenceEditableTemplates
- /conf/global/settings/cloudconfigs
- /conf/global/settings/wcm
- /var/workflow/model
- /conf/global/settings/workflow
-
從您的本機開發環境匯出電子郵件設定、提交和預填動作程式碼。 若要匯出這些設定和組態,請在您的本機開發環境中建立下列資料夾和檔案的復本:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
將備份匯入至您的新SDK環境 import-the-backup-to-your-new-SDK-environment
將最適化Forms、範本、表單資料模型、主題、設定和自訂程式碼匯入全新環境。 您可以執行下列動作來匯入備份:
-
將最適化Forms、主題和PDF forms匯入新的SDK環境。
-
將最適化表單範本匯入新的SDK環境。
-
上傳表單資料模型至新的SDK環境。
-
匯入可編輯的範本、雲端設定和工作流程模型。 若要匯入您新SDK環境中所有先前提到的專案,請將包含這些專案的CRX套件匯入您的新SDK環境。
-
從您的本機開發環境匯入電子郵件設定、提交和預填動作程式碼。 若要匯入這些設定和組態,請將下列檔案從舊的原型專案放入新的原型專案:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
您的新環境現在有舊環境的表單和相關資產。