Acumatica/Acuminator 错误 PX1016 - 寻找有关此 Acuminator 错误的更多信息

Acumatica/Acuminator Error PX1016 - looking for more information regarding this Acuminator error

美好的一天

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

错误 PX1016 图形扩展必须包含 public 静态 IsActive 方法,其类型为 bool return。持续活跃的扩展会降低性能。如果您需要图表扩展一直处于活动状态,请抑制错误。

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

此处描述的代码示例将不胜感激

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

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

如果您的 GraphExtension 应该始终处于活动状态,无论哪个功能是 enabled/disabled - 您可以 return 在这里

public static bool IsActive()
{
    return true;
}

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

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

当你添加一个新的扩展时,你必须决定是否需要有条件地启用你的扩展(因此,添加具有有意义代码的 IsActive() 方法)或者你的扩展必须始终打开(通过抑制通过添加抑制注释在代码中进行诊断)。

Acuminator 只是确保您知道“永远在线”的扩展会降低性能。如果您决定某个特定的扩展必须始终打开,只需在 Visual Studio:

中添加抑制注释来抑制此诊断
// Acuminator disable once PX1016 ExtensionDoesNotDeclareIsActiveMethod because this extension should be always enabled
public class MyExtension : PXGraphExtension<GraphType>
{
    ...
}

您可以通过点击诊断灯泡附近的图标自动将其添加到 Visual Studio 中: