gpt4 book ai didi

palantir-foundry - Foundry Workshop - 防止重复数据输入

转载 作者:行者123 更新时间:2023-12-02 18:14:12 25 4
gpt4 key购买 nike

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

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

  1. 有问题的本体对象将显示在 Workshop 的对象表中。
  2. 工作人员将从对象表中选择一个对象。
  3. 所选对象将在对象 View 中打开。
  4. 工作人员将在对象 View (此处显示 Foundry 表单)中输入数据。

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

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

最佳答案

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

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

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

这可以防止用户在未首先查看更改的情况下覆盖几乎同时进行的编辑,并在写回层执行此操作,而不是使用应用程序前端中的逻辑。

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

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

|编号 | primary_object_id |用户 ID |时间戳 |超时

然后在您的 Workshop 应用程序中,表格上方有一个按钮,上面写着“编辑所选对象”。

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

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

这不会推送到另一个 session ,它只是为了显示目的,真正的保护仍然来自 Actions 强制执行的底层对象版本控制,但这可能是一个不错的选择如果您确实希望经常遇到这种情况,则用户可以在顶部分层。

关于palantir-foundry - Foundry Workshop - 防止重复数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71853811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com