Я использую userLoginType и userRoles для включения / отключения некоторых полей в моих событиях Row_Selected, но с помощью Acuminator https://github.com/Acumatica/Acuminator я получаю предупреждение PX1049: https://github.com/Acumatica/Acuminator/blob/dev/docs/diagnostics/PX1049.md
мой код следующий:
public class OpportunityMaintExt : PXGraphExtension<OpportunityMaint>
{
public PXSelectJoin<EPLoginType, InnerJoin<Users, On<Users.loginTypeID, Equal<EPLoginType.loginTypeID>>>,
Where<Users.pKID, Equal<Current<AccessInfo.userID>>>> userLoginType;
public PXSelect<Contact, Where<Contact.userID, Equal<Current<AccessInfo.userID>>>> userContact;
public PXSelect<UsersInRoles, Where<UsersInRoles.username, Equal<Current<AccessInfo.userName>>>> userRoles;
public string userLoginTypeName;
protected virtual void CROpportunity_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
CROpportunity o = e.Row as CROpportunity;
CROpportunityExt myOpp = sender.GetExtension<CROpportunityExt>(sender.Current);
userLoginTypeName = TRLoginInfo.getCurrentUserLoginType(userLoginType.SelectSingle(), userRoles);
enabledisablefields();
}
Проблема в userLoginType.SelectSingle (), Acuminator говорит мне, что: «В Rowselected Handler следует избегать bql и запросов к базам данных». Но если я помещаю это в Initialize (), это выдает то же самое предупреждение.
Итак, куда я должен поместить эти запросы bql / database, если я хочу, чтобы они обрабатывались при просмотре записи?
Большое спасибо!