Текущее время: Вт, июл 29 2025, 05:03

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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