Today I want to note web.config properties, which took for me some time to discover. It is possible to add two options in connection string of web.config.
2. Connect Timeout=300
What is difference between those two parameters?
The first one set for how long your code at db will be executed. The second one sets for how long your code will wait for result. more
I want to share with you how to block some columns in Acumatica.
You can do it with the PXUIFieldAttribute.SetEnabled method.
Let's say you have DAC PRTran with column earningType and values of PRTran you get from PaySlipDetails view. Then you can block whole column with the following call:
PXUIFieldAttribute.SetEnabled<PRTran.earningType>(PaySlipDetails.Cache, null, isEnabled);
Another question which sometime appears is how to block single record value in column.
The solution is the following:
row = .... here goes your logic which will get PRTran for which you need to make blocking
PXUIFieldAttribute.SetEnabled<PRTran.earningType>(PaySlipDetails.Cache, row, false); more
today I want to share with everybody how to find all items in view in Acumatica.
Suppose you have View declared in the following way:
InnerJoin<EPEmployee, On<EPEmployee.bAccountID, Equal<PRPayrollDetails.employeeID>>,
InnerJoin<PRPayroll, On<PRPayroll.refNbr, Equal<Current<PRPayrollDetails.payrollRefNbr>>>,
LeftJoin<APInvoice, On<APInvoice.refNbr, Equal<PRPayrollDetails.aPRefNbr>, And<APInvoice.docType, Equal<PRPayrollDetails.aPDocType>>>>>>,
Where<PRPayrollDetails.payrollRefNbr, Equal<Current<PRPayroll.refNbr>>>, OrderBy<Asc<PRPayrollDetails.description>>> PayRollsDetails;
and now you made some changes to that view in … more
today I want to share how to fight with error like
Error 22 An object reference is required for the non-static field, method, or property 'PX.Data.PXSelectBase<Acumatica DAC>.Select(params object)' bla bla bla
As usually it means that you try to use this in selector of Extension class. Just replace this at Base or Base2 and your problem will go away.
CR.Location customerLoc = PXSelect<CR.Location, Where<CR.Location.bAccountID, Equal<Required<CR.Location.bAccountID>>,
And<CR.Location.locationID, Equal<Required<CR.Location.locationID>>>>>.Select(this, customer.BAccountID, customer.DefLocationID);
CR.Location … more
today I want to share results of my investigations of two similar pieces of functionality in Acumatica.
Have you ever wondered which Insert in cache works faster this:
a) var temp = (PRPayrollDetails)PayRollsDetails.Cache.Insert();
b) var temp = new PRPayrollDetails();
temp = (PRPayrollDetails)PayRollsDetails.Cache.Insert(temp);
If to believe to results of Stopwatch, the second part of code works faster. For my set of data, the first one took 5.5 seconds, while the second option took 4.3 seconds. And this is difference for 300 records. If you have any ideas why it can be, you are welcome to share them.
And if I had 250 records then the … more
today I want to share hwo it is possible to read from stored procedure in Acumatica. Keep in mind, that reading from sp is against best practices of Acumatica, because if you read from sp, then you'll reading will not be cached and other side effects, but sometime you don't have a choice. So, for such cases you can try following approach:
create procedure uspWow
@money decimal(19,4) OUTPUT
SELECT @money = ARInvoice.CuryLineTotal
WHERE ARInvoice.RefNbr = @invnbr;
var invNbr = new PXSPInParameter("invnbr", "000595");
var money = new PXSPOutParameter("money", PXDbType.Decimal, 19, 4, … more
today I want to share how to get extension of basic DAC class iin Acumatica. Lets say you have class ARTran, and extenstion for it ARTranExt and you want to get it in the code of ARTran_RowUpdated event
Then you can get extenstion in the following way:
protected virtual void ARTran_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e)
var newRow = (ARTran)e.Row;
var newRowE = PXCache<ARTran>.GetExtension<ARTranExt>(newRow);
today I want to share how to find current company id in Acumatica:
Here it is:
int? companyid = PX.Common.PXContext.GetSlot<Int32?>("singleCompanyID")
for me it was long way to find it more
today I want to share how to enumerate cahed objects according to some type.
Imagine you have following declaration:
public PXSelectJoin<PRTran> PaySlipDetails;
And that you need to enumerate them as list of PRTran's in some special way.
In my case I used following instruction:
var prTrans = PaySlipDetails.Cache.Cached.Cast<PRTran>().ToList().Where(a => a.IsDeleted.HasValue && !a.IsDeleted.Value).ToList();// we have list of all undeleted pr trans
var sumOtherAdj = prTrans.Where(a => a.EarningType == EarningType.OA.GetEnumDescription() || a.EarningType == EarningType.OD.GetEnumDescription()).Sum(a => a.TotalAmount); more