Cloud 行动似乎什么也不做
我正在销售订单中进行自定义,我想自定义“取消订单”操作。我反映了代码,但只能找到以下内容:Cloud 行动似乎什么也不做,cloud,erp,acumatica,Cloud,Erp,Acumatica,我正在销售订单中进行自定义,我想自定义“取消订单”操作。我反映了代码,但只能找到以下内容: public PXAction<SOOrder> cancelled; [PXUIField(Visible = false)] [PXButton(ImageKey = PX.Web.UI.Sprite.Main.DataEntryF)] protected virtual IEnumerable Cancelled(PXAdapter adapter)
public PXAction<SOOrder> cancelled;
[PXUIField(Visible = false)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.DataEntryF)]
protected virtual IEnumerable Cancelled(PXAdapter adapter)
{
return adapter.Get();
}
公共行动取消;
[PXUIField(可见=假)]
[PXButton(ImageKey=PX.Web.UI.Sprite.Main.DataEntryF)]
已取消受保护的虚拟IEnumerable(PXAdapter)
{
返回适配器Get();
}
它是定制的正确功能吗 这是一个很好的问题,因为它涉及的不仅仅是业务逻辑层 SOOrderEntry是一个非常强大和复杂的页面,必须处理多个状态。为此,Acumatica框架有一个自动化模块,允许根据当前状态设置不同的值。单击“取消订单”时,框架将触发页面自动化定义(SM205010)和自动化步骤(SM205000)中定义的状态更改。请看下面操作取消订单的定义 您可以看到,单击按钮后,某些字段发生了更改。请注意,“取消”字段设置为True。“取消”字段是具有以下定义的SOOrder绑定字段:
#region Cancelled
public abstract class cancelled : PX.Data.IBqlField
{
}
protected Boolean? _Cancelled;
[PXDBBool()]
[PXDefault(false)]
[PXUIField(DisplayName = "Canceled")]
public virtual Boolean? Cancelled
{
get
{
return this._Cancelled;
}
set
{
this._Cancelled = value;
}
}
#endregion
既然我们了解了某个字段已被更改,那么我们可以寻找处理此更改的事件处理程序。目前有一个事件处理程序(FieldVerification),可以确保在取消订单之前取消订单。如果要扩展验证逻辑,可以自定义此处理程序:
protected virtual void SOOrder_Cancelled_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
如果希望添加取消成功后将发生的事件,可以创建新的事件处理程序(FieldUpdate):
您找到的代码只是一个占位符,用于创建按钮,并允许框架在您按下按钮时触发自动化步骤。谢谢您的解释。当我们在屏幕SO50100中进行大规模处理时,我还关心事件,我们如何在事件中识别它?我们有这样做的方法吗?SOOrderProcess应该实例化一个SOOrderEntry图来执行操作,因此您不必进一步扩展它。
protected virtual void SOOrder_Cancelled_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)