Получение заместителя сотрудника
Приведенный далее скрипт используется для получения первого активного постоянного заместителя с правом исполнения.
-
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
, будет возвращен первый активный заместитель с любыми правами.