Feb 25, 2011

OIM 11g: Интеграция с SAP HR

Short introduction: in this article you can find FAQ and a short guide to OIM integration with SAP HR, based on the author's experience.

Oracle Identity Manager может быть интегрирован с SAP HR с использованием коннектора "SAP Employee Reconciliation". Несмотря на то, что для коннектора доступна документация, работа с ним может представлять трудности для начинающих, и SAP HR – не самая простая система в интеграции. Поэтому нелишними будут некоторые пояснения, а также небольшой FAQ по интеграции OIM 11g и SAP HR. Большинство из того, что описано здесь для OIM 11g, применимо и для OIM 9.1.0.2BPXX.

Коннектор OIM к SAP HR для взаимодействия с системой использует механизм IDOC-ов, текстовых файлов (некий аналог XML от SAP), в которых содержится определенная информация, выгружаемая из SAP. В нашем случае используется сообщение HRMD_A (HRMD_A05, A0X...) – записи о сотрудниках.

Прежде, чем приступить к настройке интеграции, вам понадобятся библиотеки доступа к SAP - SAP JCO и SAP IDOC. Внимание! Эти библиотеки специфичны для ОС и аппаратной конфигурации (например, сборка под процессор AMD не заработает под Intel, пусть даже с то же ОС Windows).

Последовательность проведения интеграции может различаться в зависимости от ситуации (к сожалению, нет двух одинаковых систем SAP HR, как вы уже, наверное, поняли), но как правило основные шаги следующие:

1. Выгрузка данных о сотрудниках на файловую систему сервера SAP.
2. Копирование файла с IDOC-ами по выгруженным сотрудникам на сервер OIM, первоначальная загрузка пользователей в OIM.
3. Настройка RFC-получателя IDOC в SAP HR. Запуск SAP HRMS Listener, получение событий изменений записей в SAP HR (прием на работу, перевод, увольнение и т.д.).

Рассмотрим процесс первоначальной загрузки данных о сотрудниках (полная реконсилиация, "Full Reconciliation"), показанный на рис. 1.
 
Рис. 1. Процесс первоначальной загрузки данных о сотрудниках из SAP HR.

На стороне SAP HR настраивается получатель, указывающий на файловую систему сервера SAP, выгружаются все или выборочно сотрудники, создается IDOC-файл, расположение которого указывается при настройке получателя. Файл копируется на сервер OIM и запускается задача SAP HRMS User Recon на OIM, расположение файла на сервере OIM определяется настройкой задачи (см. документацию к коннектору). Задача после отработки должна создать события реконсилиации для ресурса SAP HRMS Trusted User, которые можно посмотреть OIM Advanced Administration -> Event Management -> Reconciliation. Если все прошло успешно, на основе информации из IDOC будут созданы пользователи OIM. По умолчанию логин пользователей совпадает с табельным номером SAP. Возможные проблемы описаны в разделе FAQ настоящей статьи.

Процесс обработки данных, поступающих в SAP HRMS Listener по RFC-соединению со стороны SAP HR показан на рис. 2.

Рис. 2. Процесс инкрементальной реконсилиации с SAP HR..

Тут возможны принципиально два случая. Во-первых, данные по отдельным сотрудникам (или по нескольким сотрудникам) могут быть выгружена транзакцией PFAL из SAP для соответствующего получателя (OIMIDOC, если все делать согласно документации). Это аналог полной реконсилиации, выгружается вся информация и полное сообщение HRMD_A уходит для обработки на стороне OIM задачей SAP HRMS Listener.

Во-вторых, на стороне SAP настраивается задача, осуществляющая периодическую выгрузку IDOC-ов по изменениям для соответствующего получателя. Для этого необходимо активировать отслеживание изменений и сбор IDOC-информации по ним в репозиторий SAP (см. п. 2.3.4.9 Activating Change Pointers документации по коннектору). В этом случае в OIM приходят только IDOC-и изменений с неполным набором полей. И, если пришло изменение по сотруднику, которого нет в OIM, это событие не сможет быть обработано. В таком случае необходимо выгрузить IDOC с полной информацией по сотруднику при помощи транзакции PFAL.



FAQ

1. Q: При импорте IDOC выдается ошибка "Unparsable Date" и события реконсилиации не создаются. Событие реконсилиации не создается.

A: Чаще всего подобная ошибка возникает на системе с русским Windows 2X, когда локаль сервера OIM не совпадает с локалью сервера SAP и система не может разобрать даты, поступающие из IDOC'а. Попробуйте установить в Regional Options соответствующий стандарт (чаще всего это "English, United States").

2. Q: Не удается загрузить файл с IDOC-ами. Ошибка описана ниже. Событие реконсилиации не создается.

com.sap.conn.jco.AbapException: (126) OBJECT_UNKNOWN: OBJECT_UNKNOWN[[
        at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.execute(MiddlewareJavaRfc.java:1810)
        at com.sap.conn.jco.rt.ClientConnection.execute(ClientConnection.java:1107)
        at com.sap.conn.jco.rt.ClientConnection.execute(ClientConnection.java:938)
A: Скорее всего, у вас недоступен сервер SAP из OIM. Несмотря на то, что файл с IDOC-ами скопирован на локальную файловую систему, при попытки их загрузки система пытается обратиться к серверу SAP, чтобы получить схему IDOC (расположение атрибутов в текстовом файле IDOC-а и т.д.).

3. Q: При попытке загрузки IDOC-а из файла возникает ошибка "Error when finding users...". Событие реконсилиации создается, но пользователи не создаются (или не связываются).

A: Скорее всего вы забыли создать политику авторизации, позволяющую пользователям с ролью SYSTEM ADMINISTRATORS искать других пользователей по атрибуту Personnel Number и устанавливать значения атрибутов Personnel Number, User created from HRMS, Manager. Выполните действия, показанные в п. 2.3.13 документации к коннектору.

Пояснения. В OIM 11g авторизация происходит при помощи политик авторизации, выполняющихся на встроенном OES (Oracle Entitlements Server), и права делегируются не только на набор "видимых данных" и тип операции, но и на атрибуты пользователя. При установке коннектора к SAP HR расширяется профиль пользователя дополнительными атрибутами, причем один из этих атрибутов, Personnel Number, является "ключевым", по нему OIM должен оценивать, имеется ли пользователь в OIM, соответствующий данным, приходящим в событии реконсилиации, но политики авторизации по умолчанию не предоставляют доступ к поиску по данному атрибуту. Поэтому необходимо создать новую политику авторизации.

4. Q: При выгрузке IDOC в RFC-получатель, который настроен на OIM, событие реконсилиации создается, но зависает в состоянии "Could not link because: Event Received".

A: Задача SAP HRMS Listener находится в состоянии Running (и это ее нормальное состояние), тогда как события реконсилиации в OIM 11g текущей версии (BP03) обрабатываются только после завершения работы задачи, что сделано для ускорения обработки событий реконсилиации с применением пакетного режима. Для того, чтобы запустить обработку событий реконсилиации, полученных таким образом, необходимо запустить задачу "Non Scheduled Batch Recon".

5. Q: Ошибка при создании пользователя или связывании события реконсилиации: "Invalid Manager Login".

A: При создании пользователя OIM не позволяет проставить руководителя, который еще не существует в OIM. Скорее всего вы пытаетесь загрузить пользователя, у которого проставлен руководитель с табельным номером, который еще не загружен в OIM. Это легко можно проверить по данным события реконсилиации. Вы можете или сначала загрузить руководителей, или в Design Console в процессе SAP HRMS Trusted User на закладке Reconciliation Field Mapping убрать связку "Manager [String] = SAP HR Manager". В последнем случае вам будет необходимо запустить последовательность определения руководителей через иерархию организаций, которая хранится в Lookup.SAP.HRMS.OrgHierarchy и справочнике руководителей, который хранится в Lookup.SAP.HRMS.OrgManager. Подробно эта процедура описана в соответствующих главах документации: 1.4.6 Reconciliation of the Manager ID Attribute и 2.3.3 Configuring Reconciliation of Manager ID Attribute Values.

6.... (В разработке)


Документация по коннектору здесь:

Скачать коннектор можно здесь:

No comments:

Post a Comment