0
votes

I am trying to insert a new record into a custom table in the database. This is being performed through a graph extension onto the SO graph. The code is as follows:

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

    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Send to Manufacturing")]      
    protected void AddToDatabase()
    {
        try
        {
            Flow2 graphWO = PXGraph.CreateInstance<Flow2>();
            EMPWorkOrder wo = null;
            foreach (PXResult<SOLine, InventoryItem> line in PXSelectJoin<SOLine, LeftJoinSingleTable<InventoryItem, On<InventoryItem.inventoryID, Equal<SOLine.inventoryID>>>,
                Where<SOLine.orderNbr, Equal<Current<SOOrder.orderNbr>>>>.Select(Base, Base.Document.Current.OrderNbr))
            {
                PXCache sender = Base.Transactions.Cache;
                SOLine soLine = (SOLine)line;
                InventoryItem item = (InventoryItem)line;
                SOLineExt lineExt = sender.GetExtension<SOLineExt>(soLine);
                if (lineExt.UsrisSentToManufacturing != true)
                {
                    wo = new EMPWorkOrder();
                    wo.Soid = Base.Document.Current.OrderNbr;
                    wo.ItemCD = item.InventoryCD;
                    wo.LineNbr = soLine.LineNbr;
                    wo.QtyReceived = 0;
                    wo.DateReceived = null;
                    wo.QtyComplete = 0;
                    wo.QtySentToInventory = 0;
                    wo.RouteId = "0";
                    wo.KitId = -1;
                    wo.IsStarted = false;
                    wo.NoteID = Guid.NewGuid();

                    graphWO.Document.Insert(wo);
                    graphWO.Actions.PressSave();
                    graphWO.Clear();

                }
            }
            throw new PXException("Successfully moved to Manufacturing");
        }
    }

When executing the code, the error I receive is the following:

Error#14: Inserting 'EMPWorkOrder' record raised one or more errors. Please review.

When I go into the trace, this is the information it gives me:

12/16/2016 1:44:23 PM Error: Error #14: Inserting 'EMPWorkOrder' record raised one or more errors. Please review.

at PX.Objects.SO.SOOrderEntry_Extension.AddToDatabase() at PX.Data.PXAction`1.<>c__DisplayClass3_0.<.ctor>b__0(PXAdapter adapter)

at PX.Data.PXAction`1.a(PXAdapter A_0)

at PX.Data.PXAction`1.d__31.MoveNext()

at PX.Data.PXAction`1.d__31.MoveNext()

at PX.Web.UI.PXBaseDataSource.tryExecutePendingCommand(String viewName, >String[] sortcolumns, Boolean[] descendings, Object[] searches, Object[] >parameters, PXFilterRow[] filters, DataSourceSelectArguments arguments, >Boolean& closeWindowRequired, Int32& adapterStartRow, Int32& adapterTotalRows)

at PX.Web.UI.PXBaseDataSource.ExecuteSelect(String viewName, DataSourceSelectArguments arguments, PXDSSelectArguments pxarguments)

Is there any reason that my record wouldn't be inserting into the custom table I made? If you need any other information to develop a resolution to this issue, please feel free to ask.

1

1 Answers

1
votes

Eric, you most likely get this error because of some empty field or fields (with no value or null value assigned) decorated with the PXDefaultAttribute. While running the code under debugger, you should get access to a more detailed exception through the InnerException property of the originally thrown exception.

On a side note, let me also advise you to add SOLine.orderType field in Where clause of your BQL query in the beginning of action delegate, as there are 2 key fields defined for the SOOrder DAC has: OrderType and OrderNbr