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