将 Orbeon 与自定义 Java 网络应用程序集成
Integrating Orbeon with custom Java web application
我们想将 Orbeon 与 Java 网络应用程序集成。我在 https://doc.orbeon.com/ 阅读了文档,但没有找到我正在寻找的所有答案。
在我们决定使用 Orbeon 之前,我想得到一些答案。
创建表单(调查)时,是否可以在用户回答调查时对文档进行自定义标识?
正如我所见,每个答案都有一个唯一的文档 ID。你能不能有自己的id,它由多个字段组成,比如公司,用户,实例,...
我们每个月都必须回答相同的调查。我们如何在 Orbeon 中实现这一目标?
我们能否创建一个新表单,其中包含月份字段,然后在我们的应用程序中使用 URL 或 API 将值传递到月份字段中,这样用户就不需要填写该字段甚至没有看到它?
所以基本上问题是,我们是否可以使用 URL 或 API 创建一个新文档并将自定义数据传递到文档中,这样用户就不必这样做,我们可以在我们自己的应用程序中管理这些数据。
当用户完成调查后,是否可以再次编辑,还是"closed"?
为了让事情更清楚我们想要做什么,让我解释一下我们想要实现的目标。
我们的网络应用程序有很多用户。我们想每个月给每个用户一个调查(他们将根据登录用户进行不同的调查)。我们希望通过使用 URL 或 orbeon API link 我们的带有 orbeon 表单的网络应用程序。
场景是:
- 用户登录到我们的网络应用程序,并看到他有一个(或多个)服务要完成。
- 当他点赞时,我们的应用会打开或打开
- 当用户完成服务时,我们需要知道(在我们的应用程序中)他完成了服务。我们需要 link orbeon 中的文档和我们应用程序中的数据。
我知道我们可以在数据库级别(我们使用 Oracle)或使用 API 或从 orbeon 调用 Web 服务来执行此技术,但我们需要具有相同的数据(userId 或其他一些数据)以便 link 将它们放在一起。
让我试着回答你下面的问题。我不会详细介绍每一个的所有技术细节,但这已经给了你一些想法,即使只是在一个高层次上。
正如您所说,当用户填写新表单时,Orbeon Forms 会自动为新表单的每个实例分配一个新 ID,即 so-called 文档 ID 。如果用户回来编辑表单,文档 ID 不变。您无法告诉 Orbeon Forms 使用什么文档 ID,但是您可以将一些信息(例如令牌)存储为表单数据的一部分,这样您就可以根据令牌找到数据。此令牌通常来自请求参数或 HTTP header(如果由 servlet 过滤器或反向代理设置)。此外,如果用户已登录,Orbeon Forms 会将用户名与数据一起存储。
您可以使用 API 以编程方式创建新实例。它需要对 API 进行几次调用,因此在理想情况下是 more complicated than it could be,但这当然是可能的。
如果用户登录,这似乎是您心目中系统的情况,使用 permissions,您可以同时执行这两种操作:表单作者可以决定用户是否应该允许返回和编辑以前保存的数据。
我们想将 Orbeon 与 Java 网络应用程序集成。我在 https://doc.orbeon.com/ 阅读了文档,但没有找到我正在寻找的所有答案。
在我们决定使用 Orbeon 之前,我想得到一些答案。
创建表单(调查)时,是否可以在用户回答调查时对文档进行自定义标识?
正如我所见,每个答案都有一个唯一的文档 ID。你能不能有自己的id,它由多个字段组成,比如公司,用户,实例,...
我们每个月都必须回答相同的调查。我们如何在 Orbeon 中实现这一目标?
我们能否创建一个新表单,其中包含月份字段,然后在我们的应用程序中使用 URL 或 API 将值传递到月份字段中,这样用户就不需要填写该字段甚至没有看到它? 所以基本上问题是,我们是否可以使用 URL 或 API 创建一个新文档并将自定义数据传递到文档中,这样用户就不必这样做,我们可以在我们自己的应用程序中管理这些数据。
当用户完成调查后,是否可以再次编辑,还是"closed"?
为了让事情更清楚我们想要做什么,让我解释一下我们想要实现的目标。 我们的网络应用程序有很多用户。我们想每个月给每个用户一个调查(他们将根据登录用户进行不同的调查)。我们希望通过使用 URL 或 orbeon API link 我们的带有 orbeon 表单的网络应用程序。 场景是:
- 用户登录到我们的网络应用程序,并看到他有一个(或多个)服务要完成。
- 当他点赞时,我们的应用会打开或打开
- 当用户完成服务时,我们需要知道(在我们的应用程序中)他完成了服务。我们需要 link orbeon 中的文档和我们应用程序中的数据。
我知道我们可以在数据库级别(我们使用 Oracle)或使用 API 或从 orbeon 调用 Web 服务来执行此技术,但我们需要具有相同的数据(userId 或其他一些数据)以便 link 将它们放在一起。
让我试着回答你下面的问题。我不会详细介绍每一个的所有技术细节,但这已经给了你一些想法,即使只是在一个高层次上。
正如您所说,当用户填写新表单时,Orbeon Forms 会自动为新表单的每个实例分配一个新 ID,即 so-called 文档 ID 。如果用户回来编辑表单,文档 ID 不变。您无法告诉 Orbeon Forms 使用什么文档 ID,但是您可以将一些信息(例如令牌)存储为表单数据的一部分,这样您就可以根据令牌找到数据。此令牌通常来自请求参数或 HTTP header(如果由 servlet 过滤器或反向代理设置)。此外,如果用户已登录,Orbeon Forms 会将用户名与数据一起存储。
您可以使用 API 以编程方式创建新实例。它需要对 API 进行几次调用,因此在理想情况下是 more complicated than it could be,但这当然是可能的。
如果用户登录,这似乎是您心目中系统的情况,使用 permissions,您可以同时执行这两种操作:表单作者可以决定用户是否应该允许返回和编辑以前保存的数据。