Acumatica禁用官方manufacturing功能后自定义关联屏幕无法显示如何解决
自定义引用Acumatica制造模块屏幕的独立启用配置方案
Acumatica官方制造模块的所有屏幕默认绑定了官方制造功能的访问校验,只有官方制造功能启用时,系统才会开放对应屏幕的访问权限、加载关联的页面资源,你可以通过以下方式实现仅启用自定义功能即可访问对应屏幕:
- 首先可以通过自定义功能的
Feature.xml配置直接覆盖原有屏幕的功能绑定规则,在你的自定义功能对应节点下新增<Screens>子节点,将需要用到的制造模块屏幕ID逐一添加并设置访问权限为授予即可,参考配置如下:
<Feature ID="YOUR_CUSTOM_FEATURE_GUID" Name="你的自定义功能名称" Description="自定义功能说明"> <!-- 你原有自定义功能的其他配置项 --> <Screens> <!-- 替换为你实际引用的制造模块屏幕ID,可添加多个 --> <Screen ID="AM101000" Access="Granted" /> <Screen ID="AM202000" Access="Granted" /> <Screen ID="AM301000" Access="Granted" /> </Screens> </Feature>
该配置在Acumatica 2020 R1及以上版本均生效,配置完成后重新发布自定义包,只要你的自定义功能启用,对应屏幕就会开放访问权限。
- 若完成上述配置后屏幕仍无法访问,说明对应屏幕的后台图(Graph)硬编码了官方制造功能的启用校验,此时需要通过Graph扩展重写访问校验逻辑,参考代码如下:
using PX.Data; using PX.Objects.AM; // 此处AMProductItemMaint替换为你对应屏幕的实际Graph类名 public class AMProductItemMaint_Extension : PXGraphExtension<AMProductItemMaint> { [PXOverride] public bool IsAccessible() { // 替换为你自定义功能对应的Feature常量 return PXAccess.FeatureInstalled<FeaturesSet.yourCustomFeature>(); } }
- 若屏幕加载后出现字段缺失、报错的情况,说明对应DAC字段绑定了官方制造功能的启用标记,同样可通过DAC扩展替换字段的
Feature属性为你的自定义功能即可。
如果你引用的制造模块屏幕包含依赖官方制造功能的专属业务逻辑,即便开放了访问权限,运行时也可能出现逻辑报错,建议提前梳理你用到的屏幕业务依赖,不需要的官方逻辑可通过自定义扩展移除或适配。
内容的提问来源于stack exchange,提问作者Bajrang Patidar
相关产品推荐
相关产品推荐

