当我们向现有操作添加自定义逻辑时,如何确认单击的操作是预期的操作

How to Confirm the action clicked is the expected action when we add custom logic to existing actions

这是

的延续

我正在尝试将自定义逻辑添加到申请屏幕中的现有操作按钮。我可以在批准之前(或之后)看到批准按钮我需要做一些自定义逻辑。

分析当前图表后,我得出以下解决方案

public PXAction<RQRequisition> action;
         [PXUIField(DisplayName = "Actions")]
         [PXButton]
         protected virtual IEnumerable Action(PXAdapter adapter,
         [PXInt]
        [PXIntList(new int[] { 1, 2 }, new string[] { "Approve", "Reject" })]
        int? actionID,
        [PXBool]
        bool refresh,
        [PXString]
        string actionName
        )
         {
             if (actionID == 1)
             {
                 SIApprovalInfo.updateNextApprover(this.Base);
             }
             return Base.action.Press(adapter);
         }

当我尝试访问操作名称时,它给了我空值,所以我检查了 actionID 是否为 1,因为值是 1。我注意到在自动化屏幕中,用户可以重新排序行动。所以我的问题是:如果用户对操作重新排序,actionID 是否仍会保持为 1?如果不是,那么识别我们期望的操作的正确方法是什么?

经过几次检查,我发现批准或拒绝的 actionID 为 1。 但我可以使用 adapter.Menu 来检查名称。

 if (adapter.Menu == "Approve")
 {
    SIApprovalInfo.updateNextApprover(this.Base);        
 }