【问题标题】:Acumatica/Acuminator Error PX1016 - looking for more information regarding this Acuminator errorAcumatica/Acuminator 错误 PX1016 - 查找有关此 Acuminator 错误的更多信息
【发布时间】:2020-07-23 08:56:56
【问题描述】:

美好的一天

我最近更新了我的 Acuminator 并收到以下错误。如果我不将此功能添加到我的扩展中,我发现性能会降低。我希望有人能更好地解释这一点,因为我确实看到了在一个站点上运行了很多(20 多个)自定义项的性能问题。

错误 PX1016 图形扩展必须包含具有 bool 返回类型的公共静态 IsActive 方法。持续活跃的扩展会降低性能。如果您需要图形扩展始终处于活动状态,请抑制错误。

我找到的唯一参考是在这里: https://gitmemory.com/SENya1990

这里描述的代码示例将不胜感激

【问题讨论】:

    标签: acumatica acumatica-kb


    【解决方案1】:

    此诊断已添加到最近的版本中。

    此诊断的要点是,如果当前不需要,则必须有条件地禁用尽可能多的扩展。

    添加新扩展时,您必须决定是否需要有条件地启用扩展(因此,使用有意义的代码添加 IsActive() 方法)还是必须始终打开扩展(通过抑制代码中的诊断通过添加禁止评论)。

    Acuminator 只是确保您意识到“永远在线”的扩展会降低性能。如果您决定必须始终启用特定扩展,只需在 Visual Studio 中添加抑制注释即可抑制此诊断:

    // Acuminator disable once PX1016 ExtensionDoesNotDeclareIsActiveMethod because this extension should be always enabled
    public class MyExtension : PXGraphExtension<GraphType>
    {
        ...
    }
    

    您可以通过单击诊断灯泡附近的图标在 Visual Studio 中自动添加它:

    【讨论】:

    【解决方案2】:

    最常见的情况是您只需要在特定功能下使用 GraphExtension

    public static bool IsActive()
    {
        return PXAccess.FeatureInstalled<FeaturesSet.visibilityRestriction>();
    }
    

    如果无论启用/禁用哪个功能,您的 GraphExtension 都应该始终处于活动状态 - 您可以在此处返回 true

    public static bool IsActive()
    {
        return true;
    }
    

    【讨论】:

    • 请不要添加IsActive() 方法总是返回true 没有任何有意义的条件。它不能解决问题,只是以一种模糊的方式抑制诊断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多