Возможность отправлять задания из Directum RX в личный кабинет сотрудника(ЛКС) существенно увеличивает возможность и вариативность работы с решением HRPro. В данной статье более детально рассмотрим механизм разработки на стороне Directum RX и последующей настройки на стороне личного кабинета. Для настройки отображения необходимо последовательное выполнение следующих пунктов:
Далее дано более детальное описание для каждого из пунктов.
Настройка на стороне RX
e.Block.ShowInSelfServiceOffice = true;
EssPlatform.PublicFunctions.Module.SendNewNotification(IEmployee employee, bool IsNotice);
,employee – сотрудник, получатель сообщения в ЛК. Если isNotice - true, то формируется уведомление. А если false - то задание.
Затем необходимо добавить метод формирования текста задачи для ЛК по аналогии с функцией GetAcquaintanceTaskActiveText() – является методом получения текста задачи (свойство ActiveText) на подписание и располагается в серверном коде модуля HRLite. Добавленный метод далее необходимо вызвать в серверном коде модуля HRManagement для передачи полученных данных в ЛК. Со стороны личного кабинета вызов функции происходит только если установлен атрибут: [Public(WebApiRequestType = RequestType.Get).
Создание карточки объекта
Из папки с карточками конфигурации объектов на сервере ЛК (Путь по умолчанию: «C:\Distrib\HRProProcesses\EssConfig\objectCards») скопировать конфигурационный файл похожего объекта и переименовать его.
Пример заполнения блока:
<objectCard header="Требуются действия" name="IHRModAcquaintanceAssignments" id="270ac181-7252-4e1d-b1e5-8caf65ff5d37">
Пример заполнения блока:
<formOpenedEventHandler>
<![CDATA[ ESS.network.sendRequest('/api/functions/HRModSolution/HRModManagement.GetAcquaintanceESSTaskActiveText(assignmentId=' + data.id + ')', { method: 'GET' })
.then(function (activeText){
configuration.content.template += activeText;
resolve({configuration: configuration, data: data});
})
.catch(function (error) {
ESS.toasts.showToast(error.message, 'error', false);
reject();
});
]]>
<formOpenedEventHandler>
где
'/api/functions/HRModSolution/HRModManagement.GetAcquaintanceESSTaskActiveText(assignmentId=' + data.id + ')', { method: 'GET' }
путь к методу в RX, создаваемый в блоке «Настройка на стороне RX».
Создание новой или изменение текущей проекции ЛК
В папке конфигураций к личному кабинету на сервере ЛК (Путь по умолчаню: «C:\Distrib\HRProProcesses\EssConfig»), необходимо изменить конфигурационный файл, соответствующий базовому заданию в ЛК. Либо создать свою вкладку в ЛК. Далее в текущей инструкции настроим отображение нового типа задания путем изменения базового конфигурационного файла Statements.xml. Выбор текущего файла обусловлен тем, что в нашем случае необходимо задание в ЛК получать аналогично базовому заданию HRAcquaintanceAssignment.
Перед изменением файла конфигурации необходимо сделать его резервную копию для возможности восстановления при неверном выполнении действий.
Для внесения изменений необходимо открыть файл конфигурации Statements.xml с помощью редактора (рекомендованный редактор Notepad++) и в секцию "objectCards добавить параметр «include» по аналогии с базовым.
Пример:
<include href ="objectCards/AcquaintanceAssignmentModObjectCard.xml" xmlns ="http://www.w3.org/2001/XInclude"/>
где AcquaintanceAssignmentModObjectCard.xml – имя файла карточки объекта, созданного в пункте инструкции «Создание карточки объекта»,
objectCards – стандартный путь к карточкам объектов решения (по умолчанию: «C:\Distrib\HRProProcesses\EssConfig\objectCards»).
Создание адаптера к решению
В папке AdapterConfig дистрибутива необходимо найти пример адаптера, и написать такой же адаптер под свое решение.
Пример:
"Name": "HRModSolution",
"Title": "Модифицированная конфигурация адаптера к системе HRSolution",
"AdapterType": "Directum.SelfServiceOffice.Infrastructure.RxIntegrationClient.RxSystem, Directum.SelfServiceOffice.Infrastructure.RxIntegrationClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=427ba5252f628cb0",
"UserIdentity": "DirectumRX",
"Configuration": {
"AppServerConnection": {
"Endpoint": "",
"UserName": "",
"Password": ""
Далее адаптер нужно импортировать в БД командой ess connect.
Пример команды:
путь\AdapterConfig.json -p Configuration:appserverconnection:Endpoint=https://localhost:порт/integration/odata -p
Configuration:appserverconnection:UserName=Administrator -p Configuration:appserverconnection:Password=пароль
В результате адаптер должен отобразиться в таблице TargetSystems базы данных Ess. Проверить это можно выполнив запрос к БД Ess:
select * from dbo.TargetSystems
Результаты
Если все шаги инструкции выполнены без ошибок, то в результате ЛКС отобразит задание из RX на главной странице. В него можно будет перейти, открыть форму предпросмотра документа вложенного в задание, "Подписать" или "Отказать" в подписании. Результаты выполненных действий также попадут в RX с возможностью дальнейшей обработки.
Рекомендации:
1 "Сформировать GUID любым онлайн-генератором номеров и указать его в параметре «id»." - атрибут id можно не указывать, идентификатор сгенерируется автоматически.
2 Вносить изменения в стандартные прикладные конфигурации не рекомендуется. Начнутся проблемы при обновлении стандартных решений. Лучше создайте новое прикладное решение через команду утилиты ess new и заполните в нем карточки\проекции.
3 "Создание адаптера к решению" - все же речь не о создании адаптера, а о подключении новой целевой системы. Сам адаптер вы используете стандартный RxIntegrationClient.
Авторизуйтесь, чтобы написать комментарий