В процессе развития документооборота в организации (ФГБОУ ВО «Югорский государственный университет») очень часто пользователи обращались к администраторам с просьбой добавить замещения (автоматизированных пользователей более 300). Особенно часто возникали проблемы с отпусками и командировками – пользователи не оставляли заместителей, соответственно задачи не исполнялись.
Решение позволяет автоматизировать процесс настройки замещений пользователей с учетом интеграции Галактика-ERP, а также добавления новых пользователей в СЭД DIRECTUM (задания отправляются за 5 дней до отпуска/командировки).
Рисунок 1. Типовой маршрут «Выбор замещающих лиц»
Рисунок 2. Интерфейс задачи на выбор замещающего
Рисунок 3. Интерфейс задачи на создание пользователя
Рисунок 4. Справочник исключений
Фрагмент программного кода выполнения SQL-запроса к Галактика-ERP из DIRECTUM
ADOConnectOtp = CreateObject('ADODB.Connection')
ADOConnectOtp.Provider = "msdaora"
ADOConnectOtp.ConnectionString = "Data Source=******;Persist Security Info=True;User ID=" &
Конст('******') & ";Password=" & Конст('********')
ADOConnectOtp.Open
ADOComOtp = CreateObject('ADODB.Command')
ADOComOtp.ActiveConnection = ADOConnectOtp
//~~~~запрос отпуска~~~~
ADOComOtp.CommandText = "select a.fstrtabn tabel,
p.ffio FIO,
to_char(to_oradate(v.ffactyearbeg),
'dd.mm.yyyy') nach,
to_char(to_oradate(v.ffactyearend),'dd.mm.yyyy') kon
from persons p
inner join Appointments A on A.fperson = P.fnrec
inner join vacations v on v.fappoint=a.fnrec
where
to_oradate(v.ffactyearbeg)=to_date(to_char(sysdate+5,'dd.mm.yyyy'),
'dd.mm.yyyy')and
to_oradate(v.ffactyearend)>=sysdate-1 and
(A.fDisMissDate = 0 or to_oradate(A.fDisMissDate) >= sysdate) and
A.flprizn=0 and
not exists (select a1.fstrtabn tabel1,
p.ffio FIO1,
to_oradate(v.ffactyearbeg) nach1,
to_oradate(v.ffactyearend) kon1
from persons p
inner join Appointments A1 on A1.fperson = P.fnrec
inner join vacations v on v.fappoint=a1.fnrec
where
to_oradate(v.ffactyearbeg)<=to_date(to_char(sysdate,'dd.mm.yyyy'),
'dd.mm.yyyy')and
to_oradate(v.ffactyearend)>=sysdate-1 and
A1.flprizn=0 and
a.fstrtabn=a1.fstrtabn)
order by p.ffio
"
//~~~~выполнить запрос~~~~
objRecordsetOtp = ADOComOtp.Execute
//~~~~обработка результатов~~~~
ADOConnectOtp.Close()
//~~~~Старт задач~~~~
Обсудите реализацию с экспертом Directum
Авторизуйтесь, чтобы написать комментарий