Получение заместителя сотрудника
Приведенный далее скрипт используется для получения первого активного постоянного заместителя с правом исполнения.
-
UserDV— сотрудник, для которого определяется заместитель. -
Deputy— переменная будет использована для сохранения заместителя.
using System;
using System.Xml; (1)
using DocsVision.Workflow.Objects;
using DocsVision.Workflow.Runtime;
using DocsVision.Workflow.Gates;
using DocsVision.Platform.HelperAPI; (2)
namespace DVScriptHost
{
class DVScript
{
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
ProcessVariable oUserDV = process.GetVariableByName("UserDV");
ProcessVariable oDeputy = process.GetVariableByName("Deputy"); (3)
DVPrincipal dvUser = oUserDV.Value as DVPrincipal; (4)
DVPrincipal dvDeputy = dvUser.ActiveDeputy; (5)
oDeputy.Value = dvDeputy; (6)
} catch (Exception ex)
{
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message); (7)
}
}
}
}
| 1 | Подключение системных библиотек. |
| 2 | Подключение библиотек СУБП. |
| 3 | Получение переменных процесса. |
| 4 | Приведение к типу "Сотрудник DV". |
| 5 | Получение первого (по списку) активного постоянного заместителя с правом исполнения. |
| 6 | Сохранение найденного значения в переменную. |
| 7 | Добавление сообщения об ошибке в журнал процесса. |
Свойство ActiveDeputy сущности типа DVPrincipal возвращает первого активного постоянного заместителя с правом исполнения, которого также можно получить вызвав метод GetActiveDeputy(true, false,false,true) объекта типа DVPrincipal. Установив значение соответствующего параметра метода GetActiveDeputy(bool Performing, bool Control, bool Signature, bool PermanentDeputy) в true можно получить заместителя, обладающего необходимым набором прав:
-
Performing— с правом исполнения. -
Control— с правом ответственного исполнения. -
Signature— с правом подписи. -
PermanentDeputy— постоянный заместитель.
Если все параметры в значении false, будет возвращен первый активный заместитель с любыми правами.