today I want to note reusable grid filters. Acumatica has interesting dialog window, wich is named Filter Settings in which user can define and save custom fitlers and then use them every time this user opens the page. They are recommended for usage at inquiry and processing pages, so users can customize these pages to show specific data that is most relevant to their needes and responsibilities. If you wonder how to convert ordinary view to filterable view here is the way: PXFilterable attribute.
public PXSelectReadonly<AnticipatedPayrollDetail> AnticipatedPayrollDetails;
I applied it to my page, and here is example of what I got:
So, in case if you need to add filtering option to your screen, attribute PXFilterable is your friend.
Welcome readers of my blog.
Have you ever wondered, what Acumatica will execute first: ExecuteDelete, ExecuteUpdate or ExecuteInsert? Today I revealed for myself following order:
note of today is value of orders. In the word of C# if you work with your class, you as usually don't care what you declare in your code. But in Acumatica graph order of data viewes is important, because they define order of saving data to the database. If you think that surprises are completed then here it is another one: order of viewes doesn't define order of data viewes execution. And the third one, view that is binded to PrimaryView should be defined first in the graph.
today I want to notice what kind of redirections are available in Acumatica:
- PXRedirectRequiredException opens the specified application page in the same window or a new one. By default, the user is redirected in the same window.
- PXPopupRedirectException opens the specified application page in a pop-up window.
- PXReportRequiredException opens the specified report in the same window or a new one. By default, the report opens in the same window.
- PXRedirectWithReportException opens two pages: the specified report in a new window, and the specified application page in the same window.
- PXRedirectToUrlExceptionopens the webpage with the specified external URL in a new window. This exception is also used for opening an inquiry page that is loaded into the same window by default.
I want to share predefined options for the ColumnWidth property:
I want to note how to restore original condition of Acumatica if Unpublish project failed:
1. Restore the content of the App_Data\RollbackFilesfolder to the root folder of the website.
2. Clear the content of the CstPublishedfolder.
3. Delete the files placed in the Cachessubfolder of the App_Codewebsite folder.
4. Remove all external files deployed on the website
today I want to share option, which was shocking for me. I discovered that graph can have more then one dataview for the same main DAC. Here is sample of code form T200 manual:
public PXSelect<Product> Products;
Here also continaution of the manual why on Earth you can need this:
These two data views can only be used as data members for UI containers that display the same data record at a time. In such definition of data views, the first one is used to display brief information of a product on a form, and the second one is used to display the detail information of the same product on a tab. For both data views, the Currentproperty of the PXCachecache object returns the same Productdata record. If a user selects a data record in one UI container, the same data record appears in the second container.
Some other generalizations of how to use Encog.
For getting result of network you can use Compute method:
var output = network.Compute(input);
If we want to get result of bigger number of items, we can use following construction
foreach(var item in trainingSet)
var output = network.Compute(item.Input);
Here is Backpropogation algorithm declaration of Encog:
var train = new Backpropogation(network, trainingSet, learningRate, momentum);
Today I discovered for myself purpose of momentum paramether.
Here we have error function with global minimum and three local minimums. In order to jump out of local minima and run into global minima, neural network can take into account previous modification of weights. Momentum is coeficient, which manages which part of previous iteration take into account. If it is 1, then previous result will be taken into account completely. If it is 0, then previous update will be ignored.
suppose you have read two of my previous notes about network creating and basic input into neural network and now you have huge desire to make training on neural network with Encog. You are on the right way. One of the options which you have to try is the following:
var train = new Backpropagation(_network, trainSet);
error = train.Error;
} while (error > 0.01);
Backpropogation is one of the trainings algorithms. Other training algorithms of Encog are: LMA, Similated annealing, quick propogation, Mahatan update rule, scaled conjugate rule and other, which I didn't yet tried.
In mentioned code train is Backpropogation training algorithm, which takes as paramethers _network and trainSet and applies backpropogation to it.
0.01 in our case means 1 %.
Another term which is often used as substitution for Iteration is epoch. So don't be confused if somebody interchanges epoch and iteration.