Solved

Some fields in grid not showing up in Processing dialogue after processing is complete

  • 17 September 2023
  • 5 replies
  • 83 views

Userlevel 6
Badge +3

I created a Processing screen.  The grid is populated with SO Lines based on the filter. In the grid of items being processed, the Order Number is visible:

When processing is complete, the Order Number is not displayed in the results screen:

I added the SO number in the Message as a workaround, but I don’t know why the SO number is not showing in the results screen.

I also noticed that as soon as I click PROCESS ALL, the grid is refreshed and the SO Number and Customer info is cleared from the grid during the processing.

This is the select that shows the data in the grid.

		[PXFilterable]
public PXFilteredProcessingJoinOrderBy<SOLine, RecordsToProcessFilter,
InnerJoin<SOOrder, On<SOOrder.orderType, Equal<SOLine.orderType>, And<SOOrder.orderNbr, Equal<SOLine.orderNbr>>>>,
OrderBy<Asc<SOLine.orderNbr, Asc<SOLine.lineNbr>>>> SOLinesToUpdate;

The primary table has to be SOLine as that is what is being processed in the delegate:

		public SOLineUpdate()
{
RecordsToProcessFilter currentFilter = Filter.Current;
SOLinesToUpdate.SetProcessDelegate(
delegate (List<SOLine> list)
{
DoIt(list, currentFilter, true);
});

SOLinesToUpdate.SetProcessCaption("Process");
SOLinesToUpdate.SetProcessAllCaption("Process All");
SOLinesToUpdate.SetSelected<SOLineExt.selected>();
}

 

The grid selects SO Lines based on the filter.  SOLine is the primary table for the select.  So, maybe since SOOrder is not the first table in the select statement that is why it is not being displayed?

If I cannot get the Order Number is the results screen, it is not a show stopper.  It just looks buggy to the end user.

 

 

 

icon

Best answer by darylbowman 18 September 2023, 02:38

View original

5 replies

Badge +11

So, maybe since SOOrder is not the first table in the select statement that is why it is not being displayed?

Yes, exactly.

 

The way around this is to create a projection that includes all the fields you need to display. Better user experience, but more work.

 

In this case, since you're working with SOLine, you should be able to pull SOLine.OrderNbr instead of SOOrder.OrderNbr.

Userlevel 7
Badge +17

Hey, @Joe Schmucker 

Here's the explanation for why values are cleared on the Processing screen:

In your processing view, SOLine is considered the Primary DAC, while SOOrder is the Secondary DAC. When a record is processed, the system doesn't retain the field values associated with the Secondary DAC. Consequently, the OrderNbr and Customer fields disappear from view.

As Daryl pointed out, to display the OrderNbr, it's advisable to use SOLine.OrderNbr instead of SOOrder.OrderNbr in the .aspx page.

If you also wish to display the Customer field, you would need to create a projection DAC. This specialized DAC can hold all the necessary values for your requirements.

 

Creation of Project DAC Link: https://asiablog.acumatica.com/2018/03/pxprojection-sql-views-using-bql.html 

Hope this helps!!

Userlevel 6
Badge +3

@darylbowman Projection it is!  This case is a pretty minor adjustment to get it like I want it.    

Thanks for the detailed explanation @Naveen Boga.

Userlevel 6
Badge +3

Thanks for the tips guys.  FYI, @Naveen Boga, that link was SUPER helpful!

Please recognize the beauty:

 

Badge +11

😱👏🏻

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved