Пользователь
Логин:
Пароль:
Забыли свой пароль?

Поиск по сайту
 

 Расширенный поиск
Реклама

Интеграция Service Desk с Active Directory и SAP через SQL.

Начнем с того, что у нас есть Active Directory и кадровая система постоянная на платформе SAP. Все это дело нужно скрестить с Service Desk 4.5.
Поделим все на этапы.

•Получение данных из SAP.
•Написание DTS пакета на SQL.
•Загрузка данных в SQL полученных из SAP «Средствами DTS».
•Выгрузка данных из Active Directory «Средствами DTS».
•Выгрузка данных из Active Directory с удалением двойников по ФИО «Средствами DTS».
•Выгрузка данных из Service Desk «Средствами DTS».
•Первичная загрузка данных в Service Desk.
•Финальная загрузка данных в Service Desk.

Теперь все по порядку.
Получение данных из SAP

Предположим, что данные из кадров мы можем получать только раз в сутки (Ночью), в определенном формате «Фалы TXT».

Описываем файл schema.ini

[v33_personal_all.txt]
ColNameHeader=False
Format=TabDelimited
MaxScanRows=100
CharacterSet=ANSI
Col1=KOD Integer
Col2=TN Integer
Col3=FIO char
Col4=FULL_LEVELchar
Col5=LEV_ID

[v33_levels_all.txt]
ColNameHeader=False
Format=TabDelimited
MaxScanRows=100
CharacterSet=ANSI
Col1=ID Integer
Col2=LEVELNAME char
Col3=PARENT integer
Col4=BUHCOD char
Col5=BEGDATE date

V33_personal_all.txt - файл с самими пользователями.
V33_levels_all.txt – Файл с орг.Структурой.

Теперь нам нужно закачивать данные файлы к себе на сервер, каждый день, после того, как V33_personal_all.txt и V33_levels_all.txt обновят на сервере.
Для этого подходит механизм Scheduled Tasks.

Написание DTS пакета на SQL
Делим на этапы.

Загрузка данных в SQL полученных из SAP «Средствами DTS» с удалением двойников по ФИО

Должны быть созданы таблицы, в которые будем загружать данные.

•Очищение данных таблиц.
•Подключение к источнику данных ODBC там где хранятся наши скаченные файлы
•Загрузка данных на SQL.
•Выявление двойников.
•Удаление двойников.

Выглядит это примерно так:


Делаем второй DTS пакет, но уже без удаления двойников, и загрузкой в другую таблицу. Будем грузить только пользователей т.к орг структура тут уже не нужна.


Пишем следующий пакет.
Выгрузка данных из Active Directory с удалением двойников по ФИО

Очищаем таблицы.
Выгружаем данные из домена 1, следом 2. (Если есть).
Находим двойников.
Удаляем двойников.


Не знаю, на сколько нужно приводить пример кода выгрузки данных из Active Directory, но если кому то будет нужно, обращайтесь.

Выгрузка данных из Service Desk «Средствами DTS»
Тут немного закрученная схема.

На базе данных самого SD, настраиваем views, в которую выгружаем всех новых пользователей. На что завязываться, решайте сами, я завязывался на два условия пустой табельный номер и поле ID. Поле ID я делал новым и записывал туда OID пользователя, при создании карточки.

Переходим к настройке DTS.
Схема.

Удаляем таблицу с новыми пользователями
Из созданной views вытягиваем пользователей и записываем в новую таблицу.
Удаляем всех двойников из таблицы.


Первичная загрузка данных в Service Desk

Схема такова, из предыдущего задачи мы выгрузили всех вновь созданных пользователей, теперь нам нужно им присвоить табельные номера и присвоить каждой созданной карточке табельный номер.

Привожу как пример:

Строим. 1 views
Называем V1033_person_sap

SELECT kod, fio, tn, lev_id, dolgnost, dateuvol, is_twin, naym, birthday, grade, catdolg, trm, levgrade, full_level
FROM dbo.b_sap
WHERE (dateuvol IS NULL)

2. views
Называем V1033_person_sd_sql
SELECT PERCENT sap.tn, dbo.V1033_person_sd_servicedesk.oid
FROM dbo.V1033_person_sd_servicedesk INNER JOIN
dbo.V1033_person_sap sap ON dbo.V1033_person_sd_servicedesk.fio = sap.fio
ORDER BY sap.fio

На выходе получаем Табельный номер и OID пользователя который нужно передать в SD.

Финальная загрузка данных в Service Desk

Все, остается прогрузить всех остальных пользователей из основной таблицы собранной из пакетов AD+SAP

Загрузку производим через BAT файл, что на мой взгляд, самый простой вариант.