Skip to main content
Answer

Update PXDBBool from a Command Button

  • November 14, 2023
  • 2 replies
  • 47 views

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();
}
}

 

2 replies

Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 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
  • November 14, 2023

Thanks v much Naveen!