Show Menu
主题×

配置提交操作

提交操作简介

当用户单击自适应表单上的“提交”按钮时,将触发提交操作。 您可以在自适应表单上配置提交操作。 自适应表单提供一些开箱即用的提交操作。 您可以复制和扩展默认的提交操作,以创建您自己的提交操作。 但是,根据您的要求,您可以编写并注册您自己的提交操作,以处理已提交表单中的数据。 提交操作可以使用 同步或异步提交
您可以在提要栏中自适应表单 容器 属性的“提交”部分配置提交操作。
配置提交操作
自适应表单的默认提交操作包括:
  • 提交到REST端点
  • 发送电子邮件
  • 通过电子邮件发送PDF
  • 调用表单工作流
  • 使用表单数据模型提交
  • Forms Portal提交操作
  • 调用AEM工作流
“通过电子邮件发送PDF”提交操作仅适用于使用XFA模板作为表单模型的自适应表单。
确保 # \crx-quickstart\temp\datamanager\ASM folder 存在. 临时存储附件时需要该目录。 如果目录不存在,请创建它。
如果用 XML 或JSON数据预填表单模板、表单数据模型或基于模式的自适应表单,向模式(XML模式、JSON模式、表单模板或表单数据模型)投诉数据不包含<afData>、<afBoundData>和</afUnboundData>标签,则数据的无界自适应表单的字段(无界字段是没有 bindref属性 的自适应表单字段)将丢失。
您可以为自适应表单编写自定义提交操作以满足您的使用案例。 有关详细信息,请参 阅编写自适应表单的自定义提交操作

提交到REST端点

作为 HTTP GET请求的一部分 ,“提交到REST端点”提交选项会将表单中填写的数据传递到配置的确认页。 您可以添加要请求的字段的名称。 请求的格式为:
{fieldName}={request parameter name}
如下图所示,并作为参 param1 数传 param2 递,其值从文本框和数字框字段 中复制 , ​以供下一个操作使用。
您还可以 启用POST请求 ,并提供用于发布请求的URL。 要向承载表单的AEM服务器提交数据,请使用与AEM服务器的根路径对应的相对路径。 例如,/content/forms/af/SampleForm.html。 要向任何其他服务器提交数据,请使用绝对路径。
配置Rest端点提交操作
要将字段作为参数传递到REST URL中,所有字段必须具有不同的元素名称,即使字段位于不同的面板上也是如此。

将提交的数据发布到资源或外部休息端点 

使用“ 提交到REST端点 ”动作将提交的数据发布到REST URL。 该URL可以是内部(表单所在的服务器)或外部服务器。
要将数据发布到内部服务器,请提供资源路径。 数据将发布到资源的路径。 例如,/content/restEndPoint。 对于这种帖子请求,使用提交请求的验证信息。
要向外部服务器发布数据,请提供URL。 URL的格式为https://host:port/path_to_rest_end_point。 确保配置路径以匿名处理POST请求。
在上例中,用户在中输入的信息 textbox 是使用参数捕获的 param1 。 用于发布使用以下方式捕获的数据 param1 的语法:
String data=request.getParameter("param1");
同样,用于发布XML数据和附件的参数也是 dataXml attachments
例如,您在脚本中使用这两个参数将数据解析到一个余留端点。 您使用以下语法存储和分析数据:
String data=request.getParameter("dataXml"); String att=request.getParameter("attachments");
在此示例中 data ,存储XML数据并 att 存储附件数据。

发送电子邮件

功提交表单 时,“发送电子邮件”提交操作会向一个或多个收件人发送电子邮件。 生成的电子邮件可以包含预定义格式的表单数据。
所有表单字段必须具有不同的元素名称,即使它们位于不同的面板上),以便在电子邮件中包含表单数据。

Send PDF via Email

“通 过电子邮件发送PDF ”提交操作会在成功提交表单时向一个或多个收件人发送一封包含表单数据的PDF的电子邮件。
此提交操作适用于具有“记录”模板文档的基于XFA的自适应表单和基于XSD的自适应表单。

Invoke a forms workflow

“提 交到表单 ”工作流程提交选项会向现有Adobe LiveCycle或JEE流程的AEM Forms发送数据xml和文件附件(如果有)。
有关如何配置提交到表单工作流提交操作的信息,请参 阅使用表单工作流提交和处理表单数据

使用表单数据模型提交

“使 用表单数据模型提交 ”操作将指定数据模型对象的已提交自适应表单数据写入其数据源。 在配置提交操作时,您可以选择要将其提交数据回写到其数据源的数据模型对象。
此外,您可以使用表单数据模型和记录文档(DoR)将表单附件提交到数据源。
有关表单数据模型的信息,请参 阅AEM Forms数据集成

Forms Portal提交操作

“表 单门户提交操作 ”选项使表单数据可通过AEM Forms门户访问。
有关表单门户和提交操作的详细信息,请参阅草 稿和提交组件

Invoke an AEM Workflow

调用 AEM工作流提交操作 ,可将自适应表单与AEM工作流相关联。 提交表单后,关联的工作流会自动开始到处理节点。 此外,它还会将数据文件、附件和记录文档(如果适用)放在工作流的有效负荷位置。
在使用调 用AEM工作流提交 操作 之前,请配置AEM DS设置 。 有关创建AEM工作流的信息,请参 阅OSGi上以表单为中心的工作流

自适应表单中的服务器端重新验证

通常,在任何在线数据捕获系统中,开发者都会在客户端放置一些JavaScript验证,以执行一些业务规则。 但在现代浏览器中,最终用户可以绕过这些验证,使用各种技术(如Web浏览器开发工具控制台)手动执行提交。 这种技术也适用于自适应表单。 表单开发者可以创建各种验证逻辑,但从技术上讲,最终用户可以绕过那些验证逻辑并将无效数据提交到服务器。 无效数据将破坏表单作者已实施的业务规则。
服务器端重新验证功能还提供了在服务器上设计自适应表单时运行自适应表单作者提供的验证功能。 它防止了以表单验证形式表示的数据提交和业务规则违规的任何可能危害。

在服务器上验证什么?

自适应表单的所有现成(OOTB)字段验证都可在服务器上重新运行:
  • 必填
  • 验证图片子句
  • 验证表达式

启用服务器端验证

使用提 要栏中 “自适应表单”容器下的“在服务器上重新验证”启用或禁用当前表单的服务器端验证。
启用服务器端验证
如果最终用户绕过这些验证并提交表单,服务器将再次执行验证。 如果验证在服务器结束时失败,则会停止提交事务。 最终用户再次呈现原始形式。 捕获的数据和提交的数据将作为错误呈现给用户。

在验证表达式中支持自定义功能

有时,如果存在复杂的验 证规则 ,则精确验证脚本驻留在自定义函数中,作者从字段验证表达式调用这些自定义函数。 要在执行服务器端验证时使此自定义函数库为已知和可用,表单作者可以在自适应表单容器属性的“基 ”选项卡下配置AEM客户端库的名称,如下所示。
在验证表达式中支持自定义功能
作者可以根据自适应表单配置customJavaScript库。 库中只保留可重用的函数,它依赖于jquery和endrower.js第三方库。

提交操作时的错误处理

作为AEM安全和强化准则的一部分,请配置自定义错误页,如404.jsp和500.jsp。 提交表单时,将调用这些处理函数404或500个错误。 当在“发布”节点上触发这些错误代码时,也会调用处理函数。
有关详细信息,请参 阅自定义错误处理程序显示的页面