Команды над документом

DevBookmark_DocCommands_ Команды над документом – это скрипты, реализующие интерфейс IDocumentCommand, и выполняемые на сервере приложений над документом при выборе пользователем соответствующего пункта в меню "Команды" в форме редактирования документа (или в контекстном меню, открывающемся по клику правой кнопкой мыши на документе в списковой форме).

Список всех команд над документами можно найти в справочнике "Document commands":

DocCommnads_scr_Dict

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

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

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

Команда над документом обладает следующими свойствами:

DocCommnads_scr_DictEdit1

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

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

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

Parameters – применение дополнительных параметров перед выполнением команды над документом:

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

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

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 – посмотреть встречается ли такое сочетание клавиш для какой-либо другой команды;

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

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

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

bookmark На закладке "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 На закладке "Document subtypes" приведен список подтипов документов, для которых применяется команда:

DocCommnads_scr_DictEdit2

Список представляет собой перечень всех подтипов документов, сгруппированных по типу. Команда будет доступна из формы редактирования документов тех подтипов, которые отмечены флагами.

Список можно фильтровать по Названию типа или Названию подтипа документа в соответствии с введенными в поля "Type name" или "Subtype name" текстом. Также список можно дополнительно фильтровать с помощью флагов по подтипам документов:

Enable – по всем отмеченным флагами подтипам;

Disable – по всем не отмеченным флагами подтипам;

All – по всем подтипам независимо от установленного флага.

Очистить содержимое фильтра и отобразить полный список подтипов документов можно нажатием на кнопку DocCommnads_scr_DictEdit2_ClearAll.

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

DocCommnads_scr_DictEdit3

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

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

идентификатор документа;

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

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

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

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

recordId – идентификатор документа;

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

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