Foundry Workshop - 防止重复数据输入

Foundry Workshop - Prevent duplicate data entry

我正在构建一个 Workshop 应用程序,大量操作人员(> 200)将使用该应用程序进行数据输入。 我想实施以下设置:

工作人员将输入现有 Ontology 对象的数据。为此,我在对象视图中嵌入了一个Foundry Form,并设置了相应的回写数据集。

  1. 有问题的 Ontology 个对象将显示在创意工坊的一个对象 Table 中。
  2. 工作人员将从对象 Table 中 select 对象 Table。
  3. select编辑的对象将在对象视图中打开。
  4. 工作人员将在对象视图(此处显示 Foundry 表单)中输入数据。

我需要确保不会发生并发数据输入 can/will。我怎样才能做到这一点? 我正在考虑从对象 Table 中删除在对象视图中打开的任何对象,但我不确定这是否是解决问题的最佳方法或如何实现从 table 中删除.

我假设这一定是一个常见问题,并且会有设计 Pattern/Standard 功能来解决这个问题。

如果您将 Foundry Form 替换为 Foundry Actions,您将在此处获得最佳行为。这些操作在 Ontology 管理应用程序中定义,并为管理对象编辑提供更强大的安全模型,并更紧密地集成到 Foundry 中的各种 object-layer 工具中。

然后在您的对象视图中,而不是使用 Foundry Forms 小部件,选择创建一个新的“Workshop-backed”对象视图选项卡 - 此选项位于 New Tab 按钮旁边的下拉列表中- 在 Workshop 模块中使用 Inline Action Form 嵌入您在 Ontology 管理应用程序中配置的操作表单,提供表示当前对象的变量作为操作中对象参数的默认值.

关于同步编辑,在操作中,当表单被填充时(即打开该选项卡时),基础对象的version ) 已注册。提交编辑请求时,将检查对象的当前版本,如果版本不同(即自加载表单以来已应用编辑),将向用户显示消息,说明对象已被已更新,将不会应用编辑。

这可以防止用户在未先查看更改的情况下覆盖 near-simultaneous 编辑,并在写回层执行此操作,而不是使用应用程序中的逻辑 front-end。

目前没有一种方法可以反映 real-time 两个研讨会会话之间的用户交互。例如,用户 A 的会话无法“知道”用户 B 在他们的会话中打开了对象 X 并正在进行更改。

如果您想为了方便或显示信号而做一些事情,您可以创建一个与您的主要对象相关的小对象类型 - 类似于“编辑锁”,如下所示:

|编号 | primary_object_id | user_id |时间戳 |超时

然后在您的创意工坊应用中,table 上方有一个按钮,上面写着“编辑所选对象”。

当您单击此按钮时,您会触发一个操作来创建一个新的“编辑锁定”对象,其中填充了当前用户和当前时间戳,并说从现在开始超时 15 分钟。

然后在所讨论的主要对象的对象视图中,在嵌入编辑表单的同一选项卡上,您可以创建一个变量,通过搜索获取​​与该对象关联的编辑锁,并使用如果存在“活动”编辑锁,则创建布尔变量的函数。并使用它有条件地向用户显示横幅或以其他方式向他们提供视觉指示,表明另一个用户已表示他们正在进行更改。

这不会推送到另一个会话,它只是为了显示目的,真正的保护仍然来自 Actions 强制执行的底层对象版本控制,但是如果您真的希望通常 运行 进入这种情况,那么在顶部分层可能是一个很好的用户可见性。