验证不允许在 RSA Archer 的两个不同应用程序的记录权限字段中选择相同的用户
Validation for not allowing same users to be selected in record permission field in two different applications in RSA Archer
我有 2 个应用程序,控制和测试。
控制应用程序具有测试应用程序的交叉引用。
Controls 应用程序有一个 Record Permission 字段 'Control Owner'。
测试应用程序有一个记录权限字段 'Test Performer'。
我必须验证这些字段,以便:
控制所有者和测试执行者不能相同User/Group。
如果用户被列为控件中任何链接测试的测试执行者,系统不应允许将用户选择为 'Control Owner'。
同样,如果用户被列为测试的任何链接控件的控件所有者,系统不应允许将用户选择为 'Test Performer'。
我尝试添加一个计算字段,它会给我一个标志,指示所选用户是否相同。
请帮忙!
Tanveer,我认为您描述的场景无法在 Archer 中使用可用功能进行配置。至少我无法根据我使用 Archer 平台的经验提出解决方案。
问题是 Archer 不允许您动态计算或过滤用户列表或交叉引用选择。在这种情况下,这就是您真正需要的。
不过,我可以提出以下解决方法。我不喜欢他们两个,但有时你必须妥协。
您可以创建 daily/weekly/monthly 计划报告。业务人员将收到它,其中显示用户 names/groups 在控制和测试应用程序中相互匹配的记录列表。业务用户将跟进并手动解决所有问题。
您可以在控制和测试应用程序中使用控制用户选择的自定义对象来实现此功能。所以你实际上需要两个自定义对象。
[a] 您需要一个计算字段,该字段将通过交叉引用复制所选用户的值。
[b] 自定义对象将通过设置属性 display = none.
向最终用户隐藏此字段
[c] 自定义对象将需要覆盖 "Save" 和 "Apply" 按钮,以便提供对所选 users/groups 的验证,并将它们与隐藏的计算字段进行比较,其中 users/groups 从引用的记录中存储。如果列表至少有一个公共对象,你可以通知最终用户并让他修复它,然后才能保存记录。
[d] 请注意,在保存记录之前,计算字段将不起作用。这意味着如果通过交叉引用字段提供的 "Add New" 列表添加新记录,则您将必须在自定义对象 1 的网络浏览器中创建一个 cookie 对象,并使用自定义对象 2 (反之亦然)。 Cookie 会将选择的 users/groups 存储在表单 1 中,表单 2 中的自定义对象将读取它并确定最终用户在表单 2 中的选择是否正确。
这是一个复杂的双面自定义对象(两个自定义对象必须相互 "communicate")。我之前在自定义对象之间传递 cookie 时实现了类似的行为,但我建议您尽可能避免使用此类解决方案。它们编码复杂,调试复杂,支持复杂。
在这种情况下,您仍然可以使用计划报告来控制数据完整性。
我希望这能有所帮助。
祝你好运!
我有另一种解决方案,请告知它是否有效...
我将创建一个名为 ControlEqualsTest 的计算字段,如果 Control 中的用户组等于 Test 中的用户组,则该字段的值为 True。在 submit/save/apply 期间,如果 ControlEqualsTest 为真,则 submit/save/apply 将失败并显示错误消息
我最近找到了一个可行的方法,解决方案是创建一个关闭布局的隐藏字段,并使其仅在两个记录权限字段相同时才需要
我有 2 个应用程序,控制和测试。
控制应用程序具有测试应用程序的交叉引用。
Controls 应用程序有一个 Record Permission 字段 'Control Owner'。 测试应用程序有一个记录权限字段 'Test Performer'。
我必须验证这些字段,以便:
控制所有者和测试执行者不能相同User/Group。
如果用户被列为控件中任何链接测试的测试执行者,系统不应允许将用户选择为 'Control Owner'。
同样,如果用户被列为测试的任何链接控件的控件所有者,系统不应允许将用户选择为 'Test Performer'。
我尝试添加一个计算字段,它会给我一个标志,指示所选用户是否相同。
请帮忙!
Tanveer,我认为您描述的场景无法在 Archer 中使用可用功能进行配置。至少我无法根据我使用 Archer 平台的经验提出解决方案。 问题是 Archer 不允许您动态计算或过滤用户列表或交叉引用选择。在这种情况下,这就是您真正需要的。
不过,我可以提出以下解决方法。我不喜欢他们两个,但有时你必须妥协。
您可以创建 daily/weekly/monthly 计划报告。业务人员将收到它,其中显示用户 names/groups 在控制和测试应用程序中相互匹配的记录列表。业务用户将跟进并手动解决所有问题。
您可以在控制和测试应用程序中使用控制用户选择的自定义对象来实现此功能。所以你实际上需要两个自定义对象。
[a] 您需要一个计算字段,该字段将通过交叉引用复制所选用户的值。
[b] 自定义对象将通过设置属性 display = none.
向最终用户隐藏此字段 [c] 自定义对象将需要覆盖 "Save" 和 "Apply" 按钮,以便提供对所选 users/groups 的验证,并将它们与隐藏的计算字段进行比较,其中 users/groups 从引用的记录中存储。如果列表至少有一个公共对象,你可以通知最终用户并让他修复它,然后才能保存记录。
[d] 请注意,在保存记录之前,计算字段将不起作用。这意味着如果通过交叉引用字段提供的 "Add New" 列表添加新记录,则您将必须在自定义对象 1 的网络浏览器中创建一个 cookie 对象,并使用自定义对象 2 (反之亦然)。 Cookie 会将选择的 users/groups 存储在表单 1 中,表单 2 中的自定义对象将读取它并确定最终用户在表单 2 中的选择是否正确。
这是一个复杂的双面自定义对象(两个自定义对象必须相互 "communicate")。我之前在自定义对象之间传递 cookie 时实现了类似的行为,但我建议您尽可能避免使用此类解决方案。它们编码复杂,调试复杂,支持复杂。
在这种情况下,您仍然可以使用计划报告来控制数据完整性。
我希望这能有所帮助。 祝你好运!
我有另一种解决方案,请告知它是否有效... 我将创建一个名为 ControlEqualsTest 的计算字段,如果 Control 中的用户组等于 Test 中的用户组,则该字段的值为 True。在 submit/save/apply 期间,如果 ControlEqualsTest 为真,则 submit/save/apply 将失败并显示错误消息
我最近找到了一个可行的方法,解决方案是创建一个关闭布局的隐藏字段,并使其仅在两个记录权限字段相同时才需要