You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新增CRCase状态后Acumatica操作与查询菜单项被禁用问题

解决CRCase页面新增状态后操作组禁用的问题

针对你在CR306000页面新增案例状态后,操作与查询组操作被禁用的问题,我整理了几个关键排查和解决步骤,都是Acumatica开发中遇到这类问题的常见解法:

1. 优先检查操作的自动化步骤绑定

Acumatica里大部分页面操作会和状态字段做自动化绑定,默认只允许在指定状态下执行。你新增的状态没有被包含到这些操作的允许列表里,这是最可能的原因:

  • 打开CR306000的布局编辑器,找到操作组里的目标操作(比如Edit、Delete、Find等)
  • 查看每个操作的「Automation Steps」设置,把你新增的状态添加到允许的状态集合中
  • 保存布局后刷新页面,测试操作是否恢复可用

2. 确保RowSelected事件逻辑正确执行

如果自动化步骤配置后还是有问题,再检查你的RowSelected事件代码是否存在细节疏漏:

  • 要确保正确获取到CRCaseMaint图实例,并且操作控件的名称和页面上的ID一致(可以通过布局编辑器查看操作的ID)
  • 示例修正后的代码参考:
public class CRCaseExt : PXCacheExtension<CRCase>
{
    public static bool IsActive() => true;

    protected void _(Events.RowSelected<CRCase> e)
    {
        if (e.Row == null) return;

        CRCase currentCase = e.Row;
        var caseMaintGraph = e.Cache.Graph as CRCaseMaint;
        if (caseMaintGraph == null) return;

        // 替换成你的新状态键值
        if (currentCase.Status == "NEW")
        {
            // 启用操作组核心操作
            caseMaintGraph.Edit.SetEnabled(true);
            caseMaintGraph.Delete.SetEnabled(true);
            caseMaintGraph.Save.SetEnabled(true);
            
            // 启用查询组操作
            caseMaintGraph.Find.SetEnabled(true);
            caseMaintGraph.ViewHistory.SetEnabled(true);
        }
    }
}

3. 验证DAC状态字段的StringList配置

确认你在DAC扩展中正确覆盖了Status字段的状态列表,确保新状态的键值对没有错误:

[PXString(1, IsFixed = true)]
[PXUIField(DisplayName = "Status")]
[PXStringList(
    new string[] { CRCaseStatus.Open, CRCaseStatus.Closed, "NEW" },
    new string[] { "Open", "Closed", "你的新状态名称" })]
public virtual string Status { get; set; }
public abstract class status : PX.Data.BQL.BqlString.Field<status> { }

4. 检查状态流转规则

如果你的案例模块启用了自动化流转,还需要在CRCaseMaint图的自动化步骤配置中,添加新状态的流转规则——允许从新状态触发相关操作的执行权限。

内容的提问来源于stack exchange,提问作者Jean Claude Abela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:36:08