我想在“自定义屏幕设置”上进行验证

时间:2019-03-14 13:01:24

标签: acumatica

我想在我的acumatica自定义设置屏幕上实现打开和关闭开关功能。

假设我要实施:

feature1

feature2

feature3

当我勾选Feature1时,具有该Feature的相应屏幕,如果它在站点地图上仍然可见,对我来说还是可以的,或者当用户进入该屏幕时,它将提示用户该模块不可用或未设置实例。

我正在使用与GraphName相同的ClassName的构造函数,

public MyGraphClassName()
{
    throw new PXException("Error goes here for the Initialization method");
}

但是,当我这样做时,应用DAC的屏幕也出现了错误,但是它仍然必须继续,因为它只是该屏幕的一部分。我该怎么做?,我也使用_RowSelected()事件完成了,它似乎不起作用。我迷路了。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是在构造函数中抛出PXSetupNotEnteredException。我已经在各种屏幕上做到了这一点,Acumatica也是如此。典型用途是阻止用户使用需要首先配置设置记录的页面。您可能会因为未配置或未启用功能而被阻止。

此处的示例在仓库页面上。如果页面已加载且未填写“库存”首选项,则该页面将引发设置错误,这会使整个页面如下图所示。您可以根据需要更改消息,指示未设置或启用功能。

public class INSiteMaint : PXGraph<INSiteMaint, INSite>
{
    //..
    public PXSetup<INSetup> insetup;
    //..
    public INSiteMaint()
    {
        //Check for feature enabled or setup complete
        if (insetup.Current == null)
        {
            throw new PXSetupNotEnteredException(ErrorMessages.SetupNotEntered, typeof(INSetup), PXMessages.LocalizeNoPrefix(IN.Messages.INSetup));
        }
        //..

    //..
}

如果设置对象为空(未配置IN首选项),则以下仓库页面将变为:

thrown PXSetupNotEnteredException results

还值得一提的是,在2019R1或更高版本中,您可以通过添加自己的条目来通过Acumatica启用/禁用功能来控制功能。如果实施正确,您可以让Acumatica自动从站点地图隐藏页面(无需实现PXSetupNotEnteredException)。目前尚无相关文档(测试版),但估计今年某个时候会有更多详细信息。