Разработка своих заданий в RX и настройка отображения в личном кабинете сотрудника решения HR Pro.

21 1

Возможность отправлять задания из Directum RX в личный кабинет сотрудника(ЛКС) существенно увеличивает возможность и вариативность работы с решением HRPro. В данной статье более детально рассмотрим механизм разработки на стороне Directum RX и последующей настройки на стороне личного кабинета. Для настройки отображения необходимо последовательное выполнение следующих пунктов:

  • Настройка на стороне RX.
  • Создание карточки объекта.
  • Создание новой или изменение текущей проекции ЛК.
  • Создание адаптера к решению.

 Далее дано более детальное описание для каждого из пунктов.

Настройка на стороне RX

  • Необходимо создать новый тип задания с УНИКАЛЬНЫМ ДЛЯ ВСЕХ РЕШЕНИЙ именем.
  • Добавить свойство «ShowInSelfServiceOffice» в задании в RX, которое необходимо отправить в ЛК. Булево свойство создается по аналогии в задании HRAcquaintanceAssignment (Решение: DirRX.HRSolution, модуль: HRLite, задача: HRAcquaintanceTask ).
  • На схеме задачи в событии «Старт блока» для созданного задания задать значение true свойству «ShowInSelfServiceOffice» в следующем виде:
e.Block.ShowInSelfServiceOffice = true;
  • Создание уведомлений в ЛК осуществляется через вызов базового метода решения платформы ESS:
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 в формате:
    I<имя задания в RX>s
    Сформировать GUID любым онлайн-генератором номеров и указать его в параметре «id».
    Важно! id должен отличаться от идентификатора сущности сгенерированного в RX.

Пример заполнения блока:

<objectCard  header="Требуются  действия"  name="IHRModAcquaintanceAssignments" id="270ac181-7252-4e1d-b1e5-8caf65ff5d37">

​​​​​

  • В блоке "formOpenedEventHandler" указать путь интеграции к методу формирования наименования на стороне RX (п.5 раздел «Настройка на стороне RX»).

Пример заполнения блока:   

​​​​​​​​​​<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": ""
  • В параметре “Name” указать название решения DRX в котором находится разработанное задание.
  • В параметре “Title” указать краткое описание.
  • Остальные параметры оставить без изменений.

Далее адаптер нужно импортировать в БД командой 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.

 

Авторизуйтесь, чтобы написать комментарий