为AEM Forms设置本地开发环境 overview

当您设置和配置 ​ Adobe Experience Manager Forms as a ​ Cloud Service 环境,您可以在云上设置开发、暂存和生产环境。 此外,您还可以设置和配置本地开发环境。

您可以使用本地开发环境执行以下操作,而无需登录到云开发环境:

在本地开发实例或应用程序上准备好自适应表单或相关资产以生成后 [客户通信] 准备就绪,可将自适应表单或客户通信应用程序从本地开发环境导出到Cloud Service环境,以便进一步测试或迁移到生产环境。

您还可以在本地开发环境中开发和测试自定义代码,如自定义组件和预填充服务。 测试自定义代码并准备就绪后,您可以使用Cloud Service开发环境的Git存储库来部署自定义代码。

要设置新的本地开发环境并使用它来开发活动,请按列出的顺序执行以下操作:

先决条件

您需要以下软件来设置本地开发环境。 在开始设置本地开发环境之前,请下载以下内容:

软件
描述
下载链接
ADOBE EXPERIENCE MANAGER AS A CLOUD SERVICE SDK
SDK包含 Adobe Experience Manager QuickStart和Dispatcher工具
从下载最新的SDK Software Distribution
Adobe Experience Manager Forms功能存档(AEM Forms附加组件)
用于创建、设置和优化自适应Forms和其他Adobe Experience Manager Forms功能的工具
下载自 Software Distribution
(可选)Adobe Experience Manager Forms参考内容
用于创建、设置和优化自适应Forms和其他Adobe Experience Manager Forms功能的工具
下载自 Software Distribution
(可选)Adobe Experience Manager Forms Designer
用于创建、设置和优化自适应Forms和其他Adobe Experience Manager Forms功能的工具
下载自 Software Distribution

从软件分发下载最新版本的软件 software-distribution

要下载最新版本的Adobe Experience Manager as a Cloud Service SDK、Experience Manager Forms功能存档(AEM Forms附加组件)、表单引用资源或Forms Designer,请访问 Software Distribution

  1. 登录 https://experience.adobe.com/#/downloads 使用您的Adobe ID

    note note
    NOTE
    必须为AEMas a Cloud Service配置您的Adobe组织才能下载AEMas a Cloud ServiceSDK。
  2. 导航至 AEMas a Cloud Service 选项卡。

  3. 按发布日期降序排序。

  4. 单击最新的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无缝兼容。
  5. 查看并接受EULA。 选择​ 下载 ​按钮。

为AEM项目设置开发工具 setup-development-tools-for-AEM-projects

Adobe Experience Manager Forms项目是一个自定义代码库。 它包含通过Cloud Manager部署的代码、配置和内容 Adobe Experience Manager as a Cloud Service。 此 AEM项目Maven原型 提供项目的基线结构。

设置以下开发工具以用于您的 Adobe Experience Manager 开发项目:

有关设置前面提到的开发工具的详细说明,请参阅 设置开发工具.

设置本地Experience Manager环境以进行开发

Cloud ServiceSDK提供了一个快速启动文件。 它运行本地版本的Experience Manager。 您可以在本地运行创作实例或发布实例。

虽然QuickStart提供了本地开发体验,但它并没有提供所有功能 Adobe Experience Manager as a Cloud Service。 因此,请始终使用测试您的功能和代码 Adobe Experience Manager 在将功能移至暂存或生产环境之前,需要as a Cloud Service的开发环境。

要安装和配置本地Experience Manager环境,请执行以下步骤:

将Forms存档添加到本地创作和发布实例,并配置特定于Forms的用户 add-forms-archive-configure-users

按照列出的顺序执行以下步骤,将Forms存档添加到Experience Manager实例并配置特定于表单的用户:

安装最新的Forms附加功能存档 add-forms-archive

Adobe Experience Manager Formsas a Cloud Service功能存档提供了用于在本地开发环境中创建、样式化和优化自适应Forms的工具。 安装该包以创建自适应表单并使用的各种其他功能 AEM Forms. 要安装包,请执行以下操作:

  1. 下载并提取最新信息 AEM Forms 存档适用于您的操作系统,来自 Software Distribution.

  2. 导航到crx-quickstart/install目录。 如果该文件夹不存在,请创建它。

  3. 停止AEM实例,放置 AEM Forms 附加功能存档, aem-forms-addon-<version>.far,位于install文件夹中。

  4. 转到活动命令窗口并按 Ctrl + C 命令以重新启动SDK。

    note note
    NOTE
    建议使用“Ctrl + C”命令重新启动SDK。 使用替代方法(例如,停止Java进程)重新启动AEM SDK可能会导致AEM开发环境不一致。

配置用户和权限 configure-users-and-permissions

创建表单开发人员和表单从业者等用户,并 将这些用户添加到预定义表单组 以向他们提供所需的权限。 下表列出了所有类型的用户和每种表单用户的预定义组:

用户类型
AEM组
表单操作者/
forms-users (AEM Forms用户), template-authors, workflow-users, workflow-editors、和 fdm-authors
表单开发人员
forms-users (AEM Forms用户), template-authors, workflow-users, workflow-editors、和 fdm-authors
客户体验主管或UX设计人员
forms-users、template-authors
AEM 管理员
aem-administrators、fd-administrators
最终用户
当用户必须登录才能查看并提交自适应表单时,请将这些用户添加到 forms-users 组。
当访问自适应Forms不需要用户身份验证时,不要向此类用户分配任何组。

为记录文档(DoR)设置本地开发环境 docker-microservices

AEM Forms as aCloud Service提供了基于Docker的SDK环境,可更轻松地开发记录文档并使用其他微服务。 它使您无需手动配置特定于平台的二进制文件和自适应。 要设置环境,请执行以下操作:

  1. 安装和配置Docker:

    • (对于Microsoft® Windows)安装 Docker桌面. 它配置 Docker Enginedocker-compose 在你的电脑上。

    • (Apple macOS)安装 适用于Mac的Docker Desktop. 它包括Docker引擎、Docker CLI客户端、Docker撰写、Docker内容信任、Kubernetes和凭据帮助程序。

    • (对于Linux®)安装 Docker引擎Docker撰写 在你的电脑上。

    note note
    NOTE
    • 对于Apple macOS,请允许列表包含本地AEM创作实例的文件夹。

    • Docker Desktop for Windows支持两个后端:Hyper-V
      (旧版)和WSL2(新版)。 文件共享是自动的
      使用WSL2(现代)时由Docker管理。 您必须
      在使用Hyper-V(旧版)时显式配置文件共享。

  2. 创建文件夹(例如aem-sdk)与创作实例和发布实例并行进行。 例如,C:\aem-sdk。

  3. 提取 aem-forms-addon-<version>.zip\aem-forms-addon-native-<version>.zip 文件。

    提取的aem forms加载项原生

  4. 创建环境变量AEM_HOME ,并指向本地AEM Author安装。 例如,C:\aem\author\。

  5. 打开sdk.bat或sdk.sh进行编辑。 将AEM_HOME设置为指向本地AEM Author安装。 例如,C:\aem\author\。

  6. 打开命令提示符并导航至 aem-forms-addon-native-<version> 文件夹。

  7. 确保您的本地AEM创作实例已启动并正在运行。 运行以下命令以启动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脚本。

    start-sdk-command

您现在可以使用本地开发环境呈现记录文档。 要进行测试,请将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

使用此项目可在本地创建自适应Forms、部署配置更新、叠加、创建自定义自适应表单组件、测试和自定义代码 Experience Manager Forms SDK。 在本地测试后,您可以将项目部署到 Experience Manager Forms as a Cloud Service的生产和非生产环境。 在部署项目时,还会部署以下AEM Forms资源:

主题
模板
表单数据模型(FDM)
Canvas 3.0
基本
Microsoft® Dynamics 365
宁静
空白
Salesforce
城镇
超海洋
贝里尔
NOTE
设置基于AEM Archetype版本30或更高版本的项目,以获取并使用Microsoft®Dynamics 365和Salesforce表单数据模型(FDM)以及AEM Formsas a Cloud Service。
设置基于AEM Archetype版本32或更高版本的项目,以获取并使用AEM Formsas a Cloud Service的Tranquil、Urbane和Ultraminary主题。

要设置项目,请执行以下操作:

  1. 在本地开发实例上克隆Cloud Manager Git存储库: 您的Cloud Manager Git存储库包含一个默认的AEM项目。 它基于 AEM原型. 使用Cloud Manager UI中的自助Git帐户管理克隆Cloud Manager Git存储库,将项目引入本地开发环境。 有关访问存储库的详细信息,请参阅 访问存储库.

  2. 创建 Experience Manager Forms as a [Cloud Service] 项目: 创建 Experience Manager Forms as a [Cloud Service] 基于最新项目的项目 AEM原型 或更高版本。 原型可帮助开发人员轻松开始开发 AEM Forms as a Cloud Service。 它还包含一些示例主题和模板,可帮助您快速入门。

    打开命令提示符并运行以下命令以创建 Experience Manager Forms as 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"
    

    更改 appTitleappId、和 groupId (在上面命令中)以反映环境。 此外,将includeFormsenrollment、includeFormscommunications和includeFormsheadless的值设置为 yn 取决于您的许可证和要求。 要基于核心组件创建自适应Forms,必须使用includeFormsheadless。

    • 使用 includeFormsenrollment=y 选项以包括创建自适应Forms所需的Forms特定配置、主题、模板、核心组件和依赖项。 如果您使用Forms Portal,请设置 includeExamples=y 选项。 它还将Forms Portal核心组件添加到项目中。

    • 使用 includeFormscommunications=y 选项以包括Forms核心组件和包含客户通信功能所需的依赖项。

      note warning
      WARNING
      • 使用版本45创建原型项目时, [AEM原型项目文件夹]/pom.xml最初将forms核心组件版本设置为2.0.64。在构建或部署原型项目之前,请将Forms核心组件版本更新为2.0.62。
  3. 将项目部署到您的本地开发环境。 您可以使用以下命令部署到本地开发环境

    mvn -PautoInstallPackage clean install

    有关命令的完整列表,请参见 构建和安装

  4. 将代码部署到您的 AEM Forms as a Cloud Service环境.

设置本地Dispatcher工具 setup-local-dispatcher-tools

Dispatcher是一个Apache HTTP Web服务器模块,在CDN和AEM发布层之间提供了一个安全和性能层。 Dispatcher是整个Experience Manager架构的一个组成部分,应当是本地开发环境的一部分。

执行以下步骤以配置本地Dispatcher,然后向其添加特定于Forms的规则:

设置本地调度程序 setup-local-dispatcher

此 Experience Manager as a Cloud ServiceSDK包括推荐的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缓存:

  1. 打开您的AEM项目并导航到 \src\conf.dispatcher.d\available_farms

  2. 创建 default.farm 文件。 例如:forms.farm

  3. 打开已创建的 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" }
    }
    
  4. 保存并关闭文件。

  5. 转到 conf.d/enabled_farms 并创建指向 forms.farm 文件。

  6. 编译项目并将其部署到您的 AEM Forms as a Cloud Service的环境。

有关缓存的注意事项 considerations-about-caching

  • 调度程序缓存允许 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格式时 http://host:port/content/forms/af/<adaptivefName>.html,并且在配置管理器中禁用使用浏览器区域设置,则会提供自适应表单的非本地化版本。 非本地化语言是开发自适应表单时使用的语言。 不会考虑为浏览器配置的区域设置(浏览器区域设置),并且会提供自适应表单的非本地化版本。

  • 当您使用URL格式时 http://host:port/content/forms/af/<adaptivefName>.html,并且在配置管理器中启用了使用浏览器区域设置,则会提供自适应表单的本地化版本(如果可用)。 本地化的自适应表单的语言基于为您的浏览器配置的区域设置(浏览器区域设置)。 它可能会导致 [仅缓存自适应表单的第一个实例]. 要防止问题在实例中发生,请参阅 仅缓存自适应表单的第一个实例 在疑难解答部分。

您的本地开发环境已准备就绪。

在 AEM Forms as a Cloud Service 和本地开发环境上启用自适应表单核心组件

在AEM Formsas a Cloud Service上启用自适应Forms核心组件,允许您使用AEM FormsCloud Service实例在多个渠道中创建、发布和交付基于核心组件的自适应Forms和Headless Forms。 您需要具备启用了自适应表单核心组件的环境才能使用 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会有效地创建全新的创作和发布实例,包括新的存储库(设置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

备份自适应Forms、模板、表单数据模型(FDM)、主题、配置和自定义代码。 您可以执行以下操作来创建备份:

  1. 下载 自适应Forms、主题和PDF forms。

  2. 导出自适应表单模板。

  3. 下载表单数据模型

  4. 导出可编辑的模板、云配置和工作流模型。 要从现有SDK中导出前面提到的所有项目,请创建 CRX包 的过滤器:

    • /conf/ReferenceEditableTemplates
    • /conf/global/settings/cloudconfigs
    • /conf/global/settings/wcm
    • /var/workflow/model
    • /conf/global/settings/workflow
  5. 从本地开发环境导出电子邮件配置、提交和预填充操作代码。 要导出这些设置和配置,请在本地开发环境中创建以下文件夹和文件的副本:

    • [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、模板、表单数据模型、主题、配置和自定义代码导入新环境。 您可以执行以下操作来导入备份:

  1. 导入 自适应Forms、主题和新SDK环境的PDF forms。

  2. 将自适应表单模板导入到新的SDK环境。

  3. 将表单数据模型上传到新的SDK环境。

  4. 导入可编辑的模板、云配置和工作流模型。 要导入新SDK环境中前面提到的所有项目,请将包含这些项目的CRX包导入到新SDK环境中。

  5. 从本地开发环境导入电子邮件配置、提交和预填充操作代码。 要导入这些设置和配置,请将以下文件从旧的原型项目放置到新原型项目中:

    • [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

您的新环境现在具有旧环境的表单和相关资源。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab