Полезное
Разные интересные примеры и важные решения
Управление видимостью меню (подменю)
Иногда, чтобы отобразить/скрыть левое меню/подменю недостаточно использовать в контроллере привязку к привилегиям.
Когда нужно реализовать свои проверки, например включен ли функционал в настройках системы, можно использовать следующий пример:
Отображение меню Канбан при условии что есть нужные привилегии, а так же в настройках он включен.
Создаем атрибут, где будем проверять, включен ли Канбан в настройках системы:
///
public class KanbanEnabledAttribute : BasePermissionAttribute
{
///
public override bool HasPermission()
{
return Locator.GetServiceNotNull().Settings.EnableKanban;
}
}
Далее в котроллере проставляем указанный атрибут:
///
[AnyPermission(CRMPermissionProvider.CRMAccessPermissionId, CRMPermissionProvider.SalesAccessPermissionId)]
[RouteArea(RouteProvider.AreaName)]
public class KanbanController : BPMController
{
///
/// Канбан по сделкам
///
///
///
[KanbanEnabled]
[ContentItem(Name = "SR.M('Канбан')", Image24 = Common.Web.RouteProvider.ImagesFolder + "kanban.svg")]
[FilterMenuItem(Id = CRMMenuItems.Kanban, /*Type = typeof(ICOMonthlyPayment),*/ FilterEditAction = "EditFilters")]
public ActionResult Index(long? filterId = null)
{
// TODO
}
}
После этого меню Канбан отображается не только исходя из прав (привилегий) пользователя, но и в соответствиями с настройками системы.
Точки расширения IMenuItemRenderer и IMenuCustomItems для подменю не работают!
Запросы в БД
Приведем несколько полезных запросов в БД для очистки старых данных и прочих служебных вкусностей. Для примера используется база ELMA (заменить на свое).
Удаление сообщений об ошибках в ленте:
/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
delete
FROM [ELMA].[dbo].[Feed]
where Subject like '%Ошибка в процессе%' or Subject like '%Ошибка выполнения%'
Удаление сообщений об ошибках в архиве ленты:
/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
delete
FROM [ELMA].[dbo].[FeedArchive]
where Subject like '%Ошибка в процессе%' or Subject like '%Ошибка выполнения%'
Удаление записей о выполнении взаимоотношений:
/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
delete
FROM [ELMA].[dbo].[EntityActionHistory]
where [ActionTypeUid] = '786919b5-d160-426a-a578-f74b503cf966'
Удаление записей о выполнении, добавлении комментариев, изменении времени:
/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
delete
FROM [ELMA].[dbo].[EntityActionHistory]
where [ActionTypeUid] = 'fa413130-d92d-41e4-9fba-b133c43fe02a' or [ActionTypeUid] = '3e3e8dd9-b4ea-4ad8-9aa1-19b4fe27ff80' or [ActionTypeUid] = '786919b5-d160-426a-a578-f74b503cf966'
Разработка компонентов и модулей
Утилитка сборки решений для стора
Для автоматизации сборки компонентов для стора можно использовать следующую утилиту (положить, например в каталог Dev):
Для ELMA3 - ITino.ELMA.StoreGenerator3.exe Для ELMA4 - ITino.ELMA.StoreGenerator4.exe (Дополнительно ей потребуется библиотека CommandLine.dll )
После этого необходимо в проект серверного модуля добавить два файла: Store.png и Store.xml. Пример последнего:
Module
Free
IEE BPM | Интеграция с геосервисами и картами
Интеграция с сервисами геокодинга и отображения карт:
• Яндекс.Карты
• Google Maps
• 2ГИС
• Azure Maps
• MapBox
TechSU LLC
https://www.randmgroup.ru
false
GoogleApi
ITino.ELMA.GIS
ITino.ELMA.GIS.Web
Сделать батник для сборки всего нашего хозяйства:
rmdir /Q /S %~dp0!Store.Release
mkdir %~dp0!Store.Release
rmdir /Q /S %~dp0!Packages
mkdir %~dp0!Packages
# Предваритаельн особрать пакеты нашего решения
..\PackageManager\EleWise.ELMA.Packaging.Console.exe packSln C:\ELMA-Enterprise\Dev\WebApplication\Modules\ITino.ELMA.Release.sln -v 4.1.39.28604 -out !Packages -NoSelfUpdate -NoProjectDependencies -ProjectNames ITino.ELMA.GIS;ITino.ELMA.GIS.Web
# Собрать компоненты для стора
ITino.ELMA.StoreGenerator.exe -s C:\ELMA-Enterprise\Dev\WebApplication\Modules\ITino.ELMA.Release.sln -v 4.1.39.28604 -o !Store.Release -p !Packages -e ..\Packages
# Удалить хлам - утилита сама не может - не дает GC
del /Q /S /F C:\Users\<ПодКемЗашли>\AppData\Local\Temp\*.*
После этого мы должны получить нужный(е) компоненты в каталоге Store.Release.