Acumatica 屏幕加载后的执行方法

Acumatica 屏幕加载后的执行方法,acumatica,Acumatica,最近我遇到了一些问题,我需要在初始屏幕加载后立即执行一个方法 例如,一对场景: 1处理屏幕,其中处理屏幕中显示的数据来自动态加载和解析的外部API,然后显示以进行处理 2当屏幕根据记录中的数据完成加载时,自动加载第二个窗口/选项卡 3屏幕加载后弹出提示,通知用户加载项目的情况 所有这三个方面都提出了不同的挑战,这让我想知道处理这些问题的最佳时机是什么 例如,第1项-当前我在GetRecords覆盖中有一个a调用,如果视图不包含任何记录,则调用长时间运行的进程来获取记录。虽然这是可行的,但我面临两

最近我遇到了一些问题,我需要在初始屏幕加载后立即执行一个方法

例如,一对场景:

1处理屏幕,其中处理屏幕中显示的数据来自动态加载和解析的外部API,然后显示以进行处理

2当屏幕根据记录中的数据完成加载时,自动加载第二个窗口/选项卡

3屏幕加载后弹出提示,通知用户加载项目的情况

所有这三个方面都提出了不同的挑战,这让我想知道处理这些问题的最佳时机是什么

例如,第1项-当前我在GetRecords覆盖中有一个a调用,如果视图不包含任何记录,则调用长时间运行的进程来获取记录。虽然这是可行的,但我面临两个问题

如果我让长流程运行,然后请求刷新,则用户可以在数据可用之前单击process/process All。这也会影响进程的调度

如果我用WaitTillCompleted阻止进程,则会向用户显示一个标准的页面加载微调器,而不是长时间运行的进程指示器,但允许调度正常工作

对于2/3,对新窗口/选项卡和弹出窗口的请求似乎都是从回发开始的,以便正常工作。这让我相信我需要一个javascript方法在页面完成初始化后运行,以执行适当的操作


有没有更好的方法可以使用本机框架方法处理这两种情况?

虽然这不能直接满足在页面加载中调用方法的需要,但这里有一些选项可用于检查是否正在运行进程以控制按钮或在弹出窗口外显示消息

在某些方面,我们希望在最后一个流程完成之前等待或阻止用户重新处理,并实现了以下一些示例

检查进程当前是否正在运行。可用于禁用按钮或存在操作按钮

PXLongOperation.GetStatus(this.UID) == PXLongRunStatus.InProcess
等待当前正在运行的进程完成

PXLongOperation.WaitCompletion(this.UID);
我在数据加载期间没有使用过弹出窗口,但您最好为显示的数据显示行警告/错误,而不是弹出窗口

CyclesList.Cache.RaiseExceptionHandling<ARStatementCycle.statementCycleId>(
    row, row.StatementCycleId,
    new PXSetPropertyException(Messages.WRN_ProcessStatementDetectsOverdueInvoicesAndUnappliedPayments, PXErrorLevel.RowWarning));

您需要在自定义页面还是现有页面上执行此操作?实际上两者都需要。场景1/3是自定义的。2/3是定制库存如果是定制库存,您可以覆盖初始化方法。当基本图形完成时调用它