Команды над записью справочника

DevBookmark_DictCommands_ Команды над записью справочника – это скрипты, реализующие интерфейс IDictionaryCommand, и выполняемые на сервере приложений над записью справочника при выборе пользователем соответствующего пункта в меню "Команды" в форме редактирования справочника (или в контекстном меню, открывающемся по клику правой кнопкой мыши на записи справочника в списковой форме). Команда над записью справочника может быть привязана только к одному справочнику. Если требуется выполнить одинаковые функции с записями нескольких справочников, следует вынести этот общий функционал в сервис (см. раздел Сервисы) и создать, используя этот сервис, отдельные команды над записью справочника для каждого из этих справочников.

Список всех команд над записью справочника можно найти в справочнике "Dictionary commands":

DictCommands_ListForm

Окно справочника разделено на две части: слева отображается дерево групп команд, справа – список команд выбранной слева группы.

Записи справочника можно фильтровать по Отображаемому в экранных формах названию команды (Caption), Тексту ее скрипта (Script text), Названию справочника, к которому она привязана (Dictionary name) и Тегам (Tag).

Открыть скрипт выбранной команды над записью справочника в форме редактирования можно прямо из списковой формы справочника, выбрав пункт Edit script в контекстном меню.

Команда над записью справочника обладает следующими свойствами:

DictCommands_EditForm

Caption – отображаемое в экранных формах название команды;

Dictionary – справочник, к записям которого можно применить команду;

Script – ссылка на скрипт. При создании новой команды над записью справочника скрипт создается автоматически при ее сохранении. Нажатие на ссылку Click here to edit the script... при создании новой команды над записью справочника приведет к сохранению команды и ее перезагрузке, затем откроется форма редактирования скрипта;

Folder – группа, которой принадлежит команда;

Parameters – применение дополнительных параметров перед выполнением команды над записью справочника:

None – дополнительные параметры запрошены не будут;

Parameter list – выполнение команды будет предваряться открытием генерируется системой Ultima Businessware® формы, в которой пользователю будет предложено заполнить дополнительные параметры, описанные в списке Parameters в правой части формы редактирования команды:

DictCommands_EditForm3

Custom form – выполнение команды будет предваряться открытием специальной дополнительной формы (сконструированной прикладным разработчиком), в которой пользователю будет предложено заполнить ряд параметров.

Parameter form – специальная форма с дополнительными параметрами. Ее выбор доступен в случае, если в пункте Parameters выбрана опция Custom form. Данная форма должна быть предварительно сконструирована прикладным разработчиком, например, в Visual Studio, и помещена в общедоступный клиентский модуль (подробно процесс описан в разделе Формы запроса параметров интерактивных команд);

Icon – иконка команды (размером 16 на 16 пикселей).

Кнопки справа от области предпросмотра иконки позволяют:

Dict_EditForm1_But1 – загрузить иконку;

Dict_EditForm1_But2 – сохранить загруженную ранее иконку на компьютер;

Dict_EditForm1_But3 – удалить иконку;

Hot Key – сочетание клавиш, которым можно вызвать команду из формы редактирования справочника. Флагами выбирается одна или несколько функциональных клавиш (Ctrl, Alt и Shift), а в элементе управления справа от них выбирается символьная клавиша.

Кнопки элемента управления, которым осуществляется выбор символа, позволяют:

ComboBox_Open_But – выбрать символ;

ComboBox_ADV_Close – удалить выбранное значение;

ComboBox_ADV_Search – посмотреть встречается ли такое сочетание клавиш для какой-либо другой команды:

DictCommands_EditForm2

User help – комментарий к команде, который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на нее. Комментарий вводится для каждого из языков системы в открывающейся по клику по ссылке форме;

Metadata tags – теги, используемые для описания функционала команды;

Developer's comments – комментарии прикладного разработчика;

Parameters дополнительные параметры, которые используются при выполнении команды. Все эти параметры используются (на стандартной форме) в случае, когда в пункте Parameters выбрана опция Parameter list. Параметры можно фильтровать по Названию в соответствии с введенным в поле "Name" текстом. Каждый параметр имеет:

Name – название параметра;

Caption – название, отображаемое в экранных формах;

Type Identity – тип параметра (подробнее см. раздел Типы данных);

Is Required – флаг, указывающий обязателен ли параметр для заполнения;

Save History – флаг, указывающий на необходимость помнить последнее введенное пользователем значение параметра;

String Size (доступен для типов данных Text и String) – ограничивает на указанную величину размер значения параметра;

Sort index – индекс, по которому будут отсортированы параметры в экранной форме. В качестве значений индекса можно использовать любые целые числа. Параметры будут упорядочены в форме сверху вниз в порядке увеличения индекса;

Default Value (доступен для всех типов данных кроме Binary) – значение параметра по умолчанию, которое используется в форме дополнительных параметров;

Referenced Dictionary ID (доступен для типа данных Long)– идентификатор справочника (объекта), ссылкой на который является параметр.

 

bookmark Закладка Permissions позволяет быстро настроить права на запуск команды или проверить, что хотя бы одна роль имеет к ней доступ:

 

DictCommands_EditForm1

DevBookmark_Scripts Скрипты команд над записью справочника реализуют интерфейс IDictionaryCommand (из пространства имен Ultima.Scripting).

input На вход скрипта передаются:

идентификатор записи справочника;

дополнительные параметры команды (если они были запрошены);

коллекция действий ClientActions, которые следует выполнить на стороне клиентского приложения по завершению работы скрипта.

Интерфейс IDictionaryCommand реализует единственный метод Execute, выполняющий скрипт:

Execute(long recordId, IDictionary<string, object> parameters, IList<ClientAction> clientActions)

recordId – идентификатор записи справочника;

parameters – параметры команды;

clientActions – коллекция действий ClientActions.