Skip to main content
Solved

Update PXDBBool from a Command Button


Forum|alt.badge.img

Im trying to click on a simple command button on the SOOrder screen that sets another bound boolean field on the form. The comman button seems to fire but I cant seem to get the checkbox boolean field to set and update the database? Please help!!

 

PXAction logic after clikcing ASSEMBLE KITS REQUEST (exception gets thrown “Request Sent”)

  public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry>
  {


      public PXAction<PX.Objects.SO.SOOrder> UsrKitsAssembleReq;

        [PXButton(CommitChanges = true)]
        [PXUIField(DisplayName = "Assemble Kits Request")]
        public virtual IEnumerable usrKitsAssembleReq(PXAdapter adapter)
        {
                  SOOrderExt1 soOrderExt = Base.Document.Current.GetExtension<SOOrderExt1>();
                  Base.Document.Cache.AllowUpdate = true;
                   Base.Transactions.Cache.AllowUpdate = true;
                  soOrderExt.UsrKitsAssembleReq = true;
                   throw new PXException("Request Sent");
                  return adapter.Get();
        }

DAC Extension for Kit Assembly Request Boolean:

        #region UsrKitsAssembleReq
    [PXDBBool]
    [PXUIField(DisplayName="Kit Assembly Request?")]
    [PXDefault(false, PersistingCheck = PXPersistingCheck.Nothing)]
    public bool? UsrKitsAssembleReq{ get; set; }
    public abstract class usrKitsAssembleReq: PX.Data.BQL.BqlBool.Field<usrKitsAssembleReq> { }
    #endregion

 

Best answer by Naveen Boga

@Dantheman88988  Please try with the below code.

 public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry>
    {
        public PXAction<PX.Objects.SO.SOOrder> UsrKitsAssembleReq;

        [PXButton(CommitChanges = true)]
        [PXUIField(DisplayName = "Assemble Kits Request")]
        public virtual IEnumerable usrKitsAssembleReq(PXAdapter adapter)
        {
            if (Base.Document.Current != null)
            {
                SOOrderExt1 soOrderExt = Base.Document.Current?.GetExtension<SOOrderExt1>();
                soOrderExt.UsrKitsAssembleReq = true;
                Base.Document.Cache.Update(Base.Document.Current);
                Base.Save.Press();
                throw new PXException("Request Sent");
            }
            return adapter.Get();
        }
    }

 

View original
Did this topic help you find an answer to your question?

2 replies

Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 3409 replies
  • Answer
  • November 14, 2023

@Dantheman88988  Please try with the below code.

 public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry>
    {
        public PXAction<PX.Objects.SO.SOOrder> UsrKitsAssembleReq;

        [PXButton(CommitChanges = true)]
        [PXUIField(DisplayName = "Assemble Kits Request")]
        public virtual IEnumerable usrKitsAssembleReq(PXAdapter adapter)
        {
            if (Base.Document.Current != null)
            {
                SOOrderExt1 soOrderExt = Base.Document.Current?.GetExtension<SOOrderExt1>();
                soOrderExt.UsrKitsAssembleReq = true;
                Base.Document.Cache.Update(Base.Document.Current);
                Base.Save.Press();
                throw new PXException("Request Sent");
            }
            return adapter.Get();
        }
    }

 


Forum|alt.badge.img
  • Author
  • Jr Varsity III
  • 31 replies
  • November 14, 2023

Thanks v much Naveen!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings