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

Acumatica自定义页面加载时按条件重定向的合规替代方案咨询

合规的Acumatica页面首次加载重定向方案

在自定义页面首次加载时,可以根据特定条件实现重定向。你之前在RowSelected事件中处理的问题在于:该事件会在每行选中时触发(并非仅首次加载),且在此事件中创建Graph实例违反Acumatica性能最佳实践,因此会触发系统警告。

推荐在Graph的Initialize方法中处理首次加载的重定向逻辑,该方法仅在Graph初始化时执行一次,完美匹配首次加载场景,且符合系统规范:

代码示例

public class CurrentGraph : PXGraph<CurrentGraph>
{
    public PXSelect<PrimaryDAC> PrimaryView;

    public override void Initialize()
    {
        base.Initialize();

        // 仅在首次加载(非回发、非回调)时执行逻辑
        if (!IsPostBack && !IsCallback)
        {
            // 替换为你的特定条件判断逻辑
            bool someExpression = /* 你的条件判断,比如基于参数/初始数据 */;
            if (someExpression)
            {
                int? targetClassID = /* 获取目标ClassID的逻辑 */;
                AnotherGraph targetGraph = PXGraph.CreateInstance<AnotherGraph>();
                
                // 查找目标记录
                var targetDoc = targetGraph.Documents.Search<MyClass.ClassID>(targetClassID);
                if (targetDoc != null)
                {
                    targetGraph.Documents.Current = targetDoc;
                    // 触发重定向,第三个参数true表示打开新标签页(按需调整)
                    throw new PXRedirectRequiredException(targetGraph, "跳转提示信息", true);
                }
            }
        }
    }
}

关键说明

  1. 时机控制:通过IsPostBack和IsCallback判断,确保重定向逻辑仅在页面首次加载时执行,避免回发或回调时重复触发。
  2. Graph实例创建:在Initialize中创建目标Graph实例是合规的,因为该方法仅执行一次,不会引发性能问题。
  3. 记录定位:通过Search方法找到目标记录后,需将其设置为目标Graph的当前记录,确保跳转后页面显示正确数据。

内容的提问来源于stack exchange,提问作者user30513632

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:22:39