I am trying to get a custom field (Absolute Variance Quantity in INPIDetail/INPIDetailExt) to get summed up and have that amount sent to a custom header (Total Absolute Variance Quantity in INPIHeader/INPIHeaderExt).Â
The population of Absolute Variance Quantity works just fine, I’m just stumped by the process of having it update Total Absolute Variance Quantity.

Here is my code so far:

And as text:
public class INPIReviewExtension2 : INPIHeader
  {
   //PXGraphExtension<PX.Objects.IN.INPIReview>,
   gPXFilterable]
   ePXImport(typeof(INPIHeader))]
   public
    SelectFrom<INPIDetail>.
    LeftJoin<InventoryItem>.On<INPIDetail.FK.InventoryItem>.
    LeftJoin<INSubItem>.On<INPIDetail.FK.SubItem>.
    Where<
     INPIDetail.pIID.IsEqual<INPIHeader.pIID.AsOptional>.
     And<
      INPIDetail.inventoryID.IsNull.
      Or<InventoryItem.inventoryID.IsNotNull>>>.
    OrderBy<INPIDetail.lineNbr.Asc>.
    View PIDetail;
   public
    SelectFrom<INPIDetail>.
    Where<INPIDetail.FK.PIHeader.SameAsCurrent>.
    View PIDetailPure;
   public
    SelectFrom<INPIHeader>.
    Where<INPIHeader.pIID.IsEqual<INPIHeader.pIID.FromCurrent>>.
    View PIHeaderInfo;
   public SelectFrom<INSetup>.View INSetup;
   public
    PXSetup<INSite>.
    Where<INSite.siteID.IsEqual<INPIHeader.siteID.FromCurrent>>
    insite;
   public PXFilter<PIGeneratorSettings> GeneratorSettings;
   public INBarCodeItemLookup<INBarCodeItem> AddByBarCode;
   public PXSetup<INSetup> Setup;
   public PXSelect<INPIHeader, Where<INPIHeader.status, Equal<INPIHdrStatus.counting>>> PIHeader;
   Â
   protected void INPIDetail_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
   {
   Â
    var row = (INPIHeader)e.Row;
    if(row==null){
     return;
    }
   Â
    decimal total_var_abs_qty = (decimal)0.00;
    foreach (INPIDetail detail in PIDetailPure.Select())
    {
     if (detail == null || detail.Status == INPIDetStatus.Skipped)
      continue;
     if(detail.VarQty < 0){
      total_var_abs_qty += (decimal)detail.VarQty*-1;
     }else{
      total_var_abs_qty += (decimal)detail.VarQty;   Â
     }
    }
    //TODO: Sending total_var_qty to INPIHeaderExt.usrTotalAbsVarQty
    var header = (INPIHeader)cache.Current;
   Â
    cache.SetValueExt<INPIHeaderExt.usrTotalAbsVarQty>(e.Row, total_var_abs_qty);
       Â
    return;
   }
 Â
  Â
  }
The current code compiles fine but my total absolute variance value remains at zero even when the absolute variance value for a row is updated. There’s probably a lot of code in the Class section I don’t need, but I can clean that up once the main issue is solved.
I tried borrowing some of the methodology used in the source code for how it updates Variance Quantity.
Any ideas? Thanks in advance.