Цитата:
Сообщение от
macklakov
Добрый день
У нас возникли некоторые затруднения с производительностью, поэтому хотелось бы отключить те Fact Boxes, которые пользователям не нужны. Иначе говоря, задача отключить все Fact Boxes, кроме некоторых.
Не подскажите способ как это сделать с минимальными телодвижениями?
Заранее благодарю
AX 2012 R2 CU9
Способ 1 "Если хочется покодить"
- набросал на скорую руку, произв. эксплуатацию не проходило
- можно вынести в настройке конкретизацию, какие именно фактбоксы отключить
\Classes\SysFormRun\isFormPart
X++:
// EVGA: 26.07.2016
public client static boolean isFormPart(FormRun _formRun, Args _args = null)
{
boolean ret;
MenuItemName menuItemName;
MenuItemObjectType menuItemObjectType;
Args args;
args = _formRun ? _formRun.args() : _args;
if (args && args.menuItemType() == MenuItemType::Display)
{
menuItemName = args.menuItemName();
menuItemObjectType = new MenuFunction(menuItemName, MenuItemType::Display).objectType();
if (menuItemObjectType == MenuItemObjectType::FormPart ||
menuItemObjectType == MenuItemObjectType::InfoPart ||
menuItemObjectType == MenuItemObjectType::CueGroup)
{
ret = true;
}
}
return ret;
}
\Classes\ClassFactory\formRunClassOnClient
X++:
client static FormRun formRunClassOnClient(xArgs args)
{
SysSetupFormRun sysSetupFormRun;
if (SysTaskRecorderEventManager::parmRecording())
{
return SysTaskRecorderSetupFormRun::newArgs(args);
}
// EVGA: 26.07.2016 -->
if (SysFormRun::isFormPart(null, args))
{
return null;
}
// EVGA: 26.07.2016 <--
sysSetupFormRun = new SysSetupFormRun(args);
return sysSetupFormRun;
}
Способ 2 "Без кастомизаций, но все-равно покодить"
- Пробежаться по SysLastValue и отключить лишнее
Вложение 10887