配置提交操作 configuring-the-submit-action
Adobe 建议使用现代、可扩展的数据捕获核心组件,以创建新的自适应表单或将自适应表单添加到 AEM Sites 页面。这些组件代表有关创建自适应表单的重大改进,确保实现令人印象深刻的用户体验。本文介绍了使用基础组件创作自适应表单的旧方法。
提交操作简介 introduction-to-submit-actions
当用户单击自适应表单上的提交按钮时,会触发提交操作。 您可以在自适应表单上配置提交操作。 自适应表单提供了一些现成的提交操作。 您可以复制和扩展默认提交操作以创建自己的提交操作。 但是,根据您的要求,您可以编写并注册自己的提交操作,以处理已提交表单中的数据。 提交操作可以使用同步或异步提交。
您可以在侧边栏的自适应表单容器属性的 提交 部分中配置提交操作。
配置提交操作
自适应表单可用的默认提交操作包括:
- 提交到 REST 端点
- 发送电子邮件
- 通过电子邮件发送PDF
- 调用Forms Workflow
- 使用表单数据模型提交
- Forms Portal提交操作
- 调用AEM工作流
- 提交至 Power Automate
已存在。 临时存储附件需要目录。 如果该目录不存在,请创建它。
您可以为自适应表单编写自定义提交操作以满足您的用例要求。 有关详细信息,请参阅为自适应表单编写自定义提交操作。
提交到 REST 端点 submit-to-rest-endpoint
提交到REST端点 提交选项将表单中填写的数据作为HTTPGET请求的一部分传递到配置的确认页面。 您可以添加要请求的字段的名称。请求的格式为:
{fieldName}={request parameter name}
如下图所示,param1
和param2
作为参数传递,其值复制自 文本框 和 数值框 字段以用于下一个操作。
您也可以 启用 POST 请求 并提供用于发布请求的 URL。要将数据提交到托管表单的Experience Manager服务器,请使用与Experience Manager服务器的根路径对应的相对路径。 例如,/content/forms/af/SampleForm.html。 要将数据提交到任何其他服务器,请使用绝对路径。
配置Rest端点提交操作
Post将数据提交到资源或外部rest端点 post-submitted-data-to-a-resource-or-external-rest-end-point-nbsp
使用 提交到 REST 端点 操作将提交的数据发布到 REST URL。该 URL 可以属于内部服务器(呈现表单的服务器)或外部服务器。
要将数据发布到内部服务器,请提供资源的路径。数据将发布到资源的路径。例如,/content/restEndPoint。对于此类 POST 请求,将使用提交请求的身份验证信息。
要将数据发布到外部服务器,请提供 URL。URL的格式为https://host:port/path_to_rest_end_point。 确保配置以匿名方式处理 POST 请求的路径。
在上面的示例中,使用参数 param1
捕获用户在 textbox
中输入的信息。用于发布使用 param1
捕获的数据的语法为:
String data=request.getParameter("param1");
同样,用于发布 XML 数据和附件的参数为 dataXml
和 attachments
。
例如,您在脚本中使用这两个参数来解析传输到 REST 端点的数据。您使用以下语法来存储和解析数据:
String data=request.getParameter("dataXml");
String att=request.getParameter("attachments");
在此示例中,data
存储 XML 数据,att
存储附件数据。
发送电子邮件 send-email
发送电子邮件 提交操作在成功提交表单时向一个或多个收件人发送电子邮件。 生成的电子邮件可以包含预定义格式的表单数据。
通过电子邮件发送PDF send-pdf-via-email
通过电子邮件发送PDF 提交操作在成功提交表单时向一个或多个收件人发送一封包含表单数据PDF的电子邮件。
调用Forms Workflow invoke-a-forms-workflow
提交到Forms Workflow 提交选项会将数据xml和文件附件(如果有)发送到JEE流程上的现有AdobeLiveCycle或AEM Forms。
有关如何配置提交到Forms Workflow提交操作的信息,请参阅使用表单工作流提交和处理表单数据。
使用表单数据模型提交 submit-using-form-data-model
使用表单数据模型提交 提交操作将表单数据模型中指定数据模型对象的已提交自适应表单数据写入其数据源。 配置提交操作时,您可以选择提交的数据要写回其数据源的数据模型对象。
此外,您可以使用表单数据模型和记录文档(DoR)将表单附件提交到数据源。
有关表单数据模型的信息,请参阅AEM Forms数据集成。
Forms Portal提交操作 forms-portal-submit-action
Forms门户提交操作 选项使表单数据可通过AEM Forms门户使用。
有关Forms门户和提交操作的详细信息,请参阅草稿和提交组件。
调用 AEM 工作流 invoke-an-aem-workflow
调用 AEM 工作流 提交操作将自适应表单与 AEM 工作流相关联。在提交表单时,关联的工作流将在创作实例上自动启动。可将数据文件、附件和记录文档保存到相对于工作流的文件夹,或工作流有效负荷下的文件夹,或保存到变量中。 如果工作流标记为外部数据存储,则变量选项可用,而不是有效负载选项。 您可以从可用于工作流模型的变量的列表中进行选择。如果在稍后阶段而不是在创建工作流时为外部数据存储标记了工作流,请确保所需的变量配置已到位。
在使用 调用AEM工作流 提交操作之前,配置Experience ManagerDS设置。 有关创建AEM Workflow的信息,请参阅OSGi上以表单为中心的工作流。
提交操作将以下内容置于工作流的有效负荷位置。 但是,请注意,如果工作流模型标记为外部数据存储,则仅显示“变量”选项,而不显示“有效负载”选项。
- 数据文件:它包含已提交到自适应表单的数据。您可以使用 数据文件路径 选项来指定文件名和相对于负载的文件路径。例如,
/addresschange/data.xml
路径会创建一个名为addresschange
的文件夹,并将它放置在负载的相对位置。您也可以仅指定data.xml
以仅发送提交的数据而不创建文件夹层次结构。使用变量选项,并从可用于工作流模型的变量列表中选择变量。
-
附件:您可以使用 附件路径 选项指定用于存储已上传到自适应表单的附件的文件夹名称。该文件夹是相对于负载创建的。如果为外部数据存储标记了工作流,请使用变量选项,并从对工作流模型可用的变量列表中选择变量。
-
记录文档:它包含为自适应表单生成的记录文档。您可以使用 记录文档路径 选项来指定记录文档的文件名以及相对于负载的文件路径。例如,
/addresschange/DoR.pdf
路径将创建一个相对于负载的名为addresschange
的文件夹,并相对于负载放置DoR.pdf
。您也可以仅指定DoR.pdf
以仅保存记录文档而不创建文件夹层次结构。如果为外部数据存储标记了工作流,请使用变量选项,并从对工作流模型可用的变量列表中选择变量。
提交至 Power Automate microsoft-power-automate
您可以配置自适应表单以在提交时运行 Microsoft® Power Automate Cloud Flow。配置的自适应表单将捕获的数据、附件和记录文档发送到 Power Automate Cloud Flow 进行处理。它可帮助您构建自定义数据捕获体验,同时利用 Microsoft® Power Automate 的强大功能围绕捕获的数据构建业务逻辑并自动执行客户工作流。以下几个示例说明了在将自适应表单与 Microsoft® Power Automate 集成后可执行的操作:
- 在 Power Automate 业务流程中使用自适应表单数据
- 使用 Power Automate 将捕获的数据发送到 500 多个数据源或任何公开可用的 API
- 对捕获的数据执行复杂计算
- 按预定义的计划将自适应表单数据保存到存储系统
自适应表单编辑器提供 调用 Microsoft® Power Automate Flow 提交操作,以将自适应表单数据、附件和记录文档发送到 Power Automate Cloud Flow。要使用提交操作将捕获的数据发送到Microsoft® Power Automate,将您的AEM Forms实例连接到Microsoft® Power Automate
在成功配置后,使用调用 Microsoft® Power Automate 流程提交操作将数据发送到 Power Automate Flow。
提交到Microsoft®SharePoint列表 submit-to-sharedrive
提交到SharePoint 提交操作将自适应表单与Microsoft® SharePoint存储相关联。 您可以将表单数据文件、附件或记录文档提交到连接的Microsoft® Sharepoint存储。
将自适应表单连接到Microsoft® SharePoint列表 connect-af-sharepoint-list
要将自适应表单连接到Microsoft® SharePoint列表,请执行以下操作:
- 创建SharePoint列表配置:它将AEM Forms连接到您的Microsoft® Sharepoint列表存储。
- 在自适应表单中使用 使用表单数据模型提交 提交操作:它将您的自适应表单数据发送到配置的Microsoft® SharePoint。
创建SharePoint列表配置 create-sharepoint-list-configuration
要将AEM Forms连接到Microsoft®Sharepoint列表:
-
转到 工具 > Cloud Service > Microsoft® SharePoint。
-
选择 配置容器。配置存储在选定的配置容器中。
-
从下拉列表中单击 创建 > SharePoint列表。 这将显示 SharePoint 配置向导。
-
指定 标题、客户端 ID、客户端密码 和 OAuth URL。有关如何检索 OAuth URL 的客户端 ID、客户端密码、租户 ID 的信息,请参阅 Microsoft® 文档。
-
您可以从 Microsoft® Azure 门户检索应用程序的
Client ID
和Client Secret
。 -
在 Microsoft® Azure 门户中,将重定向 URI 添加为
https://[author-instance]/libs/cq/sharepointlist/content/configurations/wizard.html
。将[author-instance]
替换为创作实例 URL。 -
在 Microsoft® Graph 选项卡中添加API权限
offline_access
和Sites.Manage.All
以提供读/写权限。 在 Sharepoint 选项卡中添加AllSites.Manage
权限以与SharePoint数据进行远程交互。 -
使用 OAuth URL:
https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize
。将<tenant-id>
替换为 Microsoft® Azure 门户中应用程序的tenant-id
。note note NOTE 客户端密码 字段是必填还是可选字段取决于 Azure Active Directory 应用程序配置。如果应用程序配置为使用客户端密码,则必须提供客户端密码。
-
-
单击 连接。连接成功后,将显示
Connection Successful
消息。 -
从下拉列表中选择 SharePoint站点 和 SharePoint列表。
-
点按 创建 以创建Microsoft® SharePointList的云配置。
在自适应表单中使用表单数据模型提交 use-submit-using-fdm
您可以在自适应表单中使用创建的SharePoint列表配置,以在SharePoint列表中保存数据或生成的记录文档。 执行以下步骤以在自适应表单中使用SharePoint List存储配置,如下所示:
提交表单时,数据将保存在指定的Microsoft® Sharepoint列表存储中。
- 图像列
- 元数据列
- 人员列
- 外部数据列
自适应表单中的服务器端重新验证 server-side-revalidation-in-adaptive-form
通常,在任何在线数据捕获系统中,开发人员都会在客户端放置一些 JavaScript 验证来强制实施一些业务规则。但在现代浏览器中,最终用户有办法绕过这些验证,并使用各种技术(例如,Web Browser DevTools Console)手动进行提交。此类技术对于自适应表单也是有效的。 尽管表单开发人员可以创建各种验证逻辑,但从技术上讲,最终用户可以绕过这些验证逻辑并向服务器提交无效数据。无效数据会破坏表单作者强制实施的业务规则。
服务器端重新验证功能还支持在服务器上设计自适应表单时运行自适应表单作者提供的验证。 这可防止任何可能的数据提交损害和与表单验证相关的业务规则违反情况。
在服务器上进行哪些验证? what-to-validate-on-server-br
在服务器上重新运行的自适应表单的所有现成字段验证包括:
- 必填
- 验证图片子句
- 验证表达式
启用服务器端验证 enabling-server-side-validation-br
使用边栏中自适应表单容器下方的 在服务器上重新验证,可以为当前表单启用或禁用服务器端验证。
启用服务器端验证
如果最终用户绕过这些验证并提交表单,服务器将重新执行验证。如果服务器端验证失败,则将停止提交事务。最终用户将再次看到原始表单。捕获的数据和提交的数据将作为错误呈现给用户。
支持验证表达式中的自定义函数 supporting-custom-functions-in-validation-expressions-br
有时,如果存在复杂的验证规则,则确切的验证脚本将驻留在自定义函数中,作者会从字段验证表达式中调用这些自定义函数。 要在执行服务器端验证时使此自定义函数库已知并可用,表单作者可以在自适应表单容器属性的 基本 选项卡下配置 AEM 客户端库的名称,如下所示。
支持验证表达式中的自定义函数
作者可以按自适应表单配置customJavaScript库。 该库中只保留可重用的函数,这些函数依赖 jquery 和 underscore.js 第三方库。
提交操作的错误处理 error-handling-on-submit-action
作为Experience Manager安全和强化指南的一部分,请配置自定义错误页面,如404.jsp和500.jsp。 提交表单时出现404或500错误时,将调用这些处理程序。 在Publish节点上触发这些错误代码时,还会调用处理程序。
有关详细信息,请参阅自定义错误处理程序显示的页面。