REST Patch to uBAQ Failing Suddenly

I disabled it and ran POSTMAN and got this error in the Epicor logs (which makes sense): "There is no BPM customization attached to Update method of ‘U-POReceipt’ "

That’s the only BPM.

Ok and re-enabling gets the same BPM Exception as before still?

Yup.

Success!
I recycled the App Pool.

… so dumb.

Then how in the … sigh… this doesn’t make any sense…
lets try the @hkeric.wci sugestion.
Comment out (back up_ all your code and replace it with this one

callContextBpmData.Character03 = "";
Ice.Diagnostics.Log.WriteEntry("1"); //etc


foreach(var tt in ttResults.Where(r=>r.Updated()))
{
	Ice.Diagnostics.Log.WriteEntry("2"); //etc
  int pNum = (int)tt.POHeader_PONum;
  int pLine = (int)tt.PODetail_POLine;
  decimal qty = (decimal)tt.Calculated_Quantity;
  int qtyPer = (int)tt.Calculated_QtyPer;
  string warehouse = (string)tt.Calculated_Warehouse;
  string bin = (string)tt.Calculated_Bin;
  string comments = (string)tt.Calculated_CalcComment;
  msg="Got Values";
  try
  {
	  Ice.Diagnostics.Log.WriteEntry("3"); //etc
    using(var rcvBO = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.ReceiptSvcContract>(Db))
    {
		Ice.Diagnostics.Log.WriteEntry("4"); //etc
	  msg="Instanciated BO";
      ReceiptTableset rcvTS = new ReceiptTableset();
      Ice.Diagnostics.Log.WriteEntry("5"); //etc
      //ExistsRecvHead Method
      int vendorNum = (int)tt.POHeader_VendorNum;
      string purPoint = (string)tt.POHeader_PurPoint;
      string packSlip = (string)tt.Calculated_PackSlip;
      string warning = "";
	  msg="Before Exists";
	  Ice.Diagnostics.Log.WriteEntry("6"); //etc
      rcvBO.ExistsRcvHead(vendorNum,
                          purPoint,
                          packSlip,
                          out warning);
   
		Ice.Diagnostics.Log.WriteEntry("7"); //etc
      if( !warning.Equals(string.Format("The Packing Slip {0} already exists. Do you want to continue?",packSlip)) )
      {
        
        //GetNewRcvHead Method
        vendorNum = 0;
        purPoint = "";
        
        rcvBO.GetNewRcvHead(ref rcvTS,
                            vendorNum,
                            purPoint);
		Ice.Diagnostics.Log.WriteEntry("8"); //etc	
        //GetPOInfo Method
        bool fromReceiptEntryNewRcpt = true;
        
        rcvBO.GetPOInfo(ref rcvTS,
                        pNum,
                        fromReceiptEntryNewRcpt,
                        out vendorNum,
                        out purPoint);
   
        //GetWarningPOClosed Method
        string cWarning = "";
        Ice.Diagnostics.Log.WriteEntry("9"); //etc
        rcvBO.GetWarningPOClosed(pNum,
                                 out cWarning);
        
        if( cWarning != "" )
          ;//Do Code
        
        //HHCanEditPackSLip
        Ice.Diagnostics.Log.WriteEntry("10"); //etc
        //Update Method
        rcvTS.RcvHead[0].ReceiptDate = DateTime.Today;
        rcvTS.RcvHead[0].PackSlip = packSlip;
        rcvTS.RcvHead[0].ReceivePerson = Session.UserID;
        rcvTS.RcvHead[0].RowMod = "A";
        rcvBO.Update(ref rcvTS);
 
      }
	  
	  Ice.Diagnostics.Log.WriteEntry("11"); //etc
      //GetNewRcvDtl Method
      rcvBO.GetNewRcvDtl(ref rcvTS,
                         vendorNum,
                         purPoint,
                         packSlip);
     
      //GetDtlPOLineInfo Method
      int packLine = 0;
      string serialWarning = "";
      Ice.Diagnostics.Log.WriteEntry("12"); //etc
      rcvBO.GetDtlPOLineInfo(ref rcvTS,
                             vendorNum,
                             purPoint,
                             packSlip,
                             packLine,
                             pLine,
                             out serialWarning);
       
      //GetDtlQtyInfo Method
      decimal inputOurQty = qty;
      string inputIUM = (string)tt.Calculated_UOM;
      string whichField = "QTY";
      string warnMsg = "";
      Ice.Diagnostics.Log.WriteEntry("13"); //etc
      rcvBO.GetDtlQtyInfo(ref rcvTS,
                          vendorNum,
                          purPoint,
                          packSlip,
                          packLine,
                          inputOurQty,
                          inputIUM,
                          whichField,
                          out warnMsg);
        
      if( warnMsg != "" )
        ;//Do Code
      Ice.Diagnostics.Log.WriteEntry("14"); //etc
      //CheckDtlBeforeUpdate Method
      string qMessageStr = "";
      string sMessageStr = "";
      string lcMessageStr = "";
      string pcMessageStr = "";
      
      rcvBO.CheckDtlBeforeUpdate(rcvTS,
                                 vendorNum,
                                 purPoint,
                                 packLine,
                                 packSlip,
                                 out qMessageStr,
                                 out sMessageStr,
                                 out lcMessageStr,
                                 out pcMessageStr);

      //PreUpdate Method
      bool RequiresUserInput = false;
      
      rcvBO.PreUpdate(ref rcvTS,
                      out RequiresUserInput);
   Ice.Diagnostics.Log.WriteEntry("15"); //etc
      //Update Method
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].Received = true;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].ReceiptDate = DateTime.Today;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].POComment = comments;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].BinNum = bin;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].WareHouseCode = warehouse;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1]["QtyPer_c"] = qtyPer;
      rcvTS.RcvDtl[rcvTS.RcvDtl.Count - 1].RowMod = "A";
      rcvBO.Update(ref rcvTS);
    Ice.Diagnostics.Log.WriteEntry("16"); //etc
    }
  }
  catch(Exception e){callContextBpmData.Character03 = e.ToString();
  Ice.Diagnostics.Log.WriteEntry("17"); //etc
  }
}

Then go see how far (what number) is the last one you get to. In the EventViewer on the server.

Well this was uneventful
#Disappointed

1 Like

I’ll try and whip up something more interesting next time. :slight_smile:

Well it was interesting at first and then you went and ruined it by fixing it with a typical IT Reboot… #NotCool

I cant fathom what a Recycle would have to do with it. Odd.

Well the UBAQ generates a DLL maybe it got loaded funny / corrupted and recycle caused it to regen / reload.
That’s what I attempted todo by asking him to enable / disable.
But @hmwillett did it wrong :laughing:

It’s possible! :stuck_out_tongue: