Мониторинг и профайлинг системы DIRECTUM
Статистика выполнения типовых маршрутов
Пример добавления разрезов через параметры
В типовом маршруте «Согласование договорных документов» есть параметр «Руководитель подразделения». В этом параметре задается имя руководителя, для которого готовится договор. Значение параметра запрашивается у пользователя при выборе типового маршрута. Значение выбирается из справочника Пользователи.
Без добавления разрезов данные в отчетах по этому типовому маршруту можно анализировать в разрезе имен руководителей подразделений.
Предположим, что только имен руководителей для анализа недостаточно. Требуются их подразделения и возраст.
В этом случае в список параметров следует добавить два параметра:
· Должность руководителя (Post)– тип Справочник Виды должностей;
· Возраст руководителя (Age)– тип Целое число.
Значения этих параметров не имеет смысла запрашивать у пользователей, их можно получить программно. Для этого, в событие типового маршрута «Завершение выбора» можно добавить следующие вычисления:
DEPARTMENT_MANAGER_PARAM_NAME = "РуководительПодразделения"
PARAM_IS_NOT_EXIST = -1
LIST_IS_EMPTY_COUNT = 0
FIRST_EMPLOYEE_INDEX = 0
// Получить список параметров ТМ
WorkflowParams = Object.WorkflowParams
DepartmentManagerParamIndex = WorkflowParams.IndexOfName(DEPARTMENT_MANAGER_PARAM_NAME)
if DepartmentManagerParamIndex <> PARAM_IS_NOT_EXIST
// Получить пользователя руководителя подразделения
DepartmentManagerUser = WorkflowParams.Values(DepartmentManagerParamIndex).Value
DepartmentManagerUserID = DepartmentManagerUser.ID
DepartmentManagerEmployeesCodeList = GetEmployeesByUserID(DepartmentManagerUserID)
if DepartmentManagerEmployeesCodeList.Count > LIST_IS_EMPTY_COUNT
// Получить работника руководителя подразделения
DepartmentManagerEmployeeCode = DepartmentManagerEmployeesCodeList.Values(FIRST_EMPLOYEE_INDEX)
DepartmentManagerEmployeeRecord = References.РАБ.GetObjectByCode(DepartmentManagerEmployeeCode)
PostKindCode = DepartmentManagerEmployeeRecord.ВидДолжности
if Assigned(PostKindCode)
// Получить вид должности
PostKindID = GetRequisiteValueAsString("PositionKinds"; PostKindCode; SYSREQ_ID)
PostKindInfo = References.PositionKinds.ObjectInfo(PostKindID)
WorkflowParams.ValueByName("Post").Value = PostKindInfo
endif
// Получить возраст
DateOfBirth = GetRequisiteValueAsString("ПРС"; DepartmentManagerEmployeeRecord.Персона; "Дата")
Age = DateDiff("Y"; DateOfBirth; Today())
WorkflowParams.ValueByName("Age").Value = Age
endif
endif
См. также:
· Общие сведения о добавлении разрезов через параметры;
· Особенности добавления параметров для разрезов.
© 2009, Компания DIRECTUM
|
Отправить комментарий к этому разделу на
support@directum.ru
|