屏幕左侧显示"禁用保存按钮" PXSetPropertyException之后的状态

时间:2018-02-23 00:08:42

标签: acumatica

我已经为SOShipmentEntry BLC编写了一个扩展,其中一个FieldVerifying事件链接到Packages网格上的udf。当用户输入值时,它会检查此值是否违反了我们的业务规则。如果是,则触发以下内容。

  

抛出新的PXSetPropertyException(SWKMapadocMessages.Not_Prepped,   PXErrorLevel.RowWarning);

这样可以正常工作,但是如果用户试图保存任何后续更改,则抛出该错误后,会出现错误#29;错误#299:“保存”按钮被禁用"消息,保存被取消。用户必须刷新屏幕才能返回可用状态。有谁知道这是为什么?

1 个答案:

答案 0 :(得分:0)

审核自定义后,主要数据视图文档似乎存在问题,用作自定义 MAPADOC <的 DataMember / em> 标签。如T200开发人员培训材料的提供控件数据部分所述,如果数据视图未指定为 PrimaryView <,则只能将相同的数据视图绑定到多个容器控件/ strong>用于数据源控件。我相信,在将 CurrentDocument 定义为 MAPADOC <的 DataMember 后,应该完全解决已停用保存按钮的问题/ em> 标签,而不是主文档数据视图。

<px:PXTabItem Text="MAPADOC">
    <Template>
        <px:PXFormView runat="server" ID="CstFormView10" DataMember="CurrentDocument" 
            SkinID="" Width="100%">
            <Template>
                ...
            </Template>
        </px:PXFormView>
    </Template>
</px:PXTabItem>

除此之外,我还注意到在 FieldVerifying 事件处理程序中调用的Actions.PressSave();方法。说实话,事件处理程序永远不是保存对数据库的更改的好地方。操作委托是一个完美的地方,但在事件处理程序中,实际上应该永远不会尝试调用Actions.PressSave();方法,因为此时并非所有DAC中的更改都已到达相应的PXCache并且可能会丢失,因为执行Actions.PressSave();的行为。