Текущее время: Пн, июл 28 2025, 15:14

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 06:35 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 16 2010, 06:14
Сообщения: 30
Здравствуйте!

Совсем новичок в ABAP-е, поэтому у меня есть вопросы к вам.

Необходимо написать отчёт по свободным вакансиям. В организации используется интеграция с ОМ. Вывод на экран вакансий требуется производить в порядке, соответствующим иерархии подразделений и должностей(также, как я этот порядок вижу в ppome).

Работать с лог.БД PCH у меня совсем нет опыта, да и не уверен, что там порядком можно легко управлять, поэтому хочу сделать по-простому, обычный report (без использования лог.БД). Но возник вопрос, как программно определить головное подразделение организации в таблице орг.единиц (T527X)? Мне это нужно, чтобы потом можно уже было "развернуть" иерархию подчинённости подразделений по связям таблицы HRP1001 (соединения).

Также попутный вопрос. Когда я выполняю селект из таблицы орг.единиц (T527X) по условию WHERE MAINT = 'P' AND SPRSL = SY-LANGU, то там вижу ещё какие-то подразделения, кроме тех, что имеются в иерархии ppome, как я её вижу ан экране. Какие таблицы надо ещё приджойтить, чтобы отсечь ненужное из резалт-сета?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 07:35 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
ФМ для списка вышестоящих оргединиц?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 08:38 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 16 2010, 06:14
Сообщения: 30
Besa, это не совсем то.

Если использовать этот ФМ (HRCM_ORGSTRC_INFO_TABLE_GET), то ему одним из параметров надо дать root_objid объекта, с которого начинается обход.

А мне, как-раз, и надо узнать, чему равен этот root_objid, прежде чем позвать, к примеру, хоть и этот ФМ. Т.е. вопрос именно в том, как узнать ид головного подразделения организации (то подразделение, которое мы в ppome видим самым верхним)?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 09:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
HR_STRUCTURE_GET, с pathid = 'A001'.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 10:23 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
ФМ RH_STRUC_HELP_ROOTS_GET

_________________
Sapere aude!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Пн, авг 16 2010, 13:06 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 16 2010, 06:14
Сообщения: 30
С ФМ HR_STRUCTURE_GET что-то не получилось, валится в аварийный экран, видимо, что-то с параметрами не понимаю, как их там задать.

А с ФМ RH_STRUC_HELP_ROOTS_GET вроде прошло. Следующий код:

data: root_tab type standard table of hrrootob,
wa_root_tab LIKE LINE OF root_tab.

CALL FUNCTION 'RH_STRUC_HELP_ROOTS_GET'
EXPORTING
search_plvar = '01'
search_otype = 'O'
search_begda = sy-datum
search_endda = sy-datum
TABLES
roots = root_tab
EXCEPTIONS
OTHERS = 0.
.
LOOP AT root_tab INTO wa_root_tab.
WRITE:/ wa_root_tab-OTYPE, wa_root_tab-OBJID.
ENDLOOP.

возвратил то, что и требовалось:

O 50000001

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как программно определить головное подразделение организации (ppome)?
СообщениеДобавлено: Вт, авг 17 2010, 17:51 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 16 2010, 06:14
Сообщения: 30
Так, для информации.

В-общем, я прошёлся в отладке по ФМ RH_STRUC_HELP_ROOTS_GET и локализовал там конкретное место, где головной объект орг.структуры берётся.

Код ещё упростился (не делается ни какой лишней работы):

DATA: root_object_index LIKE HROBJECT OCCURS 0.
DATA: indx_key LIKE indx-SRTFD.
indx_key = 'RHWH01O ORGEH 1'.
IMPORT root_object_index FROM DATABASE indx(rh) ID indx_key.
DATA: wa_root_object_index LIKE LINE OF root_object_index.
LOOP AT root_object_index INTO wa_root_object_index.
WRITE:/ wa_root_object_index-PLVAR, wa_root_object_index-OTYPE, wa_root_object_index-OBJID.
ENDLOOP.

Возвращает то, что надо:

01 O 50000001


Вопрос только в том, корректно ли это? Не знаю всех ещё тонкостей, поэтому и спрашиваю.

Заодно, кто-нибудь объснил бы суть этого оператора, если не трудно:

IMPORT root_object_index FROM DATABASE indx(rh) ID indx_key.

потому как, по английскому хэлпу не совсем понимаю, что он делает. Нашёл только соответствующую запись в системной таблице INDX (прозрачная таблица БД).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB