Текущее время: Ср, июл 30 2025, 17:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: подскажите функцию HR  Тема решена
СообщениеДобавлено: Ср, мар 11 2009, 18:40 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 16 2008, 14:48
Сообщения: 24
Откуда: Питер
Пол: Женский
Подскажите, пожалуйста, функцию, которая на входе берет табельный номер сотрудника, а выдает табельный номер его начальника.
Уверена, что такая есть. :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Ср, мар 11 2009, 18:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 03 2009, 12:33
Сообщения: 141
поможет HRCM_ORGUNIT_MANAGER_GET с типом объекта 'P' :idea:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Ср, мар 11 2009, 19:40 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, окт 27 2008, 16:21
Сообщения: 33
Откуда: Москва
Пол: Мужской
Мне кажется такое можнос делать с помощью RH_STRUC_GET, если задать правильный путь анализа в поле act_wegid


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 10:54 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 16 2008, 14:48
Сообщения: 24
Откуда: Питер
Пол: Женский
Спасибо за ответы, написала свою функцию, которая определяла штатную должность, потом ОргЕдиницу - после с помощью рекомендованной HRCM_ORGUNIT_MANAGER_GET выдавала начальника, если нача не было для этой ОргЕд, шла вверх по дереву. А вот RH_STRUC_GET - там вроде только вниз по дереву можно идти, как я поняла.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 11:10 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Mayka написала:
А вот RH_STRUC_GET - там вроде только вниз по дереву можно идти, как я поняла.

Все зависит от пути анализа - например ORGA-UP ОргСтруктура по иерерхии "снизу-вверх"

_________________
Sapere aude!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 11:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 03 2009, 12:33
Сообщения: 141
Mayka, а так не работает?

Code:
      call FUNCTION 'HRCM_ORGUNIT_MANAGER_GET'
        EXPORTING
          PLVAR              = '01'
          OTYPE              = 'P'
          OBJID              = таб номер сотрудника
          BEGDA              = sy-datum
          ENDDA              = sy-datum
        TABLES
          MANAGER_INFO_TABLE = m_manager
        EXCEPTIONS
          PATH_ERROR
          ROOT_ERROR
          NOTHING_FOUND.


я тоже использовал ие для определения насяльника по подразделению, но почему то думал, что и так должно работать :?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 12:19 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 16 2008, 14:48
Сообщения: 24
Откуда: Питер
Пол: Женский
Я так пробовала ). Не работает, но это вообще не наша система, а немецкая, у них там структура какая-то совсем не простая, не как в наших проектах, которые я видела. Но они вроде удовлетворились моим решением :D .


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 12:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 12:25 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 03 2009, 12:33
Сообщения: 141
Таки вопрос решен не до конца :wink:
Выкладывай свой ФМ который наваяла, если это конечно не военная тайна :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: подскажите функцию HR
СообщениеДобавлено: Пт, мар 13 2009, 13:46 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 16 2008, 14:48
Сообщения: 24
Откуда: Питер
Пол: Женский
Нет, конечно ))
ну там не фм, а просто кусок кода, который я дописала в уже существующую прогу

есть список сотрудников, для которых надо выяснить начальников - teilnehmer

DATA: BEGIN OF teilnehmer OCCURS 0,
objid TYPE hrp1001-objid,
BEGDA TYPE hrp1001-BEGDA,
ENDDA TYPE hrp1001-ENDDA,
END OF teilnehmer.

там свои типы - но важен фактически только objid или pernr


DATA: l_teaml LIKE zla1_teamleiter_ma,
l_teaml_tab LIKE zla1_teamleiter_ma OCCURS 1 WITH HEADER LINE.

DATA: ls_leading_pos LIKE TABLE OF ls_trainer2,
wa_ls_leading_pos LIKE ls_trainer2,
ls_leading_org LIKE TABLE OF ls_trainer2,
wa_ls_leading_org LIKE ls_trainer2,
wa_ls_leading_org_temp type HROBJID,
ls_leading_org_high LIKE TABLE OF ls_trainer2,
wa_ls_leading_org_high LIKE ls_trainer2.


DATA: tmp_org_leader_tab LIKE OBJEC OCCURS 0 WITH HEADER LINE.
DATA: wa_tmp_org_leader_tab LIKE OBJEC.



*-------------------------------------------------
* Vorgesetzter


CLEAR: l_teaml_tab, l_teaml_tab[].

LOOP AT teilnehmer.

*читаем должности штатные
SELECT sclas sobid FROM hrp1001 INTO TABLE ls_leading_pos
WHERE otype = 'P'
AND objid = teilnehmer-objid
AND SCLAS = 'S'
AND plvar = pchplvar
AND rsign = 'B'
AND relat = '008'
AND begda <= alv_itab-begda
AND endda >= alv_itab-endda.

READ TABLE ls_leading_pos INDEX 1 INTO wa_ls_leading_pos.

*читаем ОргЕд для этой должности
SELECT sclas sobid FROM hrp1001 INTO TABLE ls_leading_org

WHERE otype = 'S'
AND objid = wa_ls_leading_pos-sobid
AND SCLAS = 'O'
AND plvar = pchplvar
AND rsign = 'A'
AND relat = '003'
AND begda <= alv_itab-begda
AND endda >= alv_itab-endda.

READ TABLE ls_leading_org INDEX 1 INTO wa_ls_leading_org.

Move wa_ls_leading_org-sobid to wa_ls_leading_org_temp.

*читаем нача для орг ед

CALL FUNCTION 'HRCM_ORGUNIT_MANAGER_GET'
EXPORTING
PLVAR = pchplvar
OTYPE = 'O'
OBJID = wa_ls_leading_org_temp
BEGDA = alv_itab-begda
ENDDA = alv_itab-endda
* PATH_ID = ' '
TABLES
manager_info_table = tmp_org_leader_tab
EXCEPTIONS
PATH_ERROR = 1
ROOT_ERROR = 2
NOTHING_FOUND = 3
OTHERS = 4
.

IF sy-subrc <> 0.

* если не нашел, поднимаемся вверх по дереву в цикле
PERFORM oben_baum USING wa_ls_leading_org-sobid
CHANGING l_teaml-PERNR.

ELSE.

* передаем значение
READ TABLE tmp_org_leader_tab INDEX 1 INTO wa_tmp_org_leader_tab.
move wa_tmp_org_leader_tab-OBJID to l_teaml-PERNR.

ENDIF.


* это если начальника нет, то убираем
if l_teaml-PERNR <> '00000000'.
Append l_teaml to l_teaml_tab.
endif.

endloop.

clear: teilnehmer, teilnehmer[].
LOOP AT l_teaml_tab.
MOVE l_teaml_tab-pernr TO teilnehmer-objid.
APPEND teilnehmer.
endloop.

* убираем лишних, если у подчиненных одинаковые начи
Sort teilnehmer.
DELETE ADJACENT DUPLICATES FROM teilnehmer.


**----------------------------------


FORM oben_baum USING sobid like hrp1001-sobid
CHANGING pernr type P_PERNR.

* go high

SELECT sclas sobid FROM hrp1001 INTO TABLE ls_leading_org_high

WHERE otype = 'O'
AND objid = sobid
AND SCLAS = 'O'
AND plvar = pchplvar
AND rsign = 'A'
AND relat = '002'
AND begda <= alv_itab-begda
AND endda >= alv_itab-endda.
IF sy-subrc <> 0.
* return '00000000'
pernr = '00000000'.



else.

READ TABLE ls_leading_org_high INDEX 1 INTO wa_ls_leading_org_high.

Move wa_ls_leading_org_high-sobid to wa_ls_leading_org_temp.


CALL FUNCTION 'HRCM_ORGUNIT_MANAGER_GET'
EXPORTING
PLVAR = pchplvar
OTYPE = 'O'
OBJID = wa_ls_leading_org_temp
BEGDA = alv_itab-begda
ENDDA = alv_itab-endda
* PATH_ID = ' '
TABLES
manager_info_table = tmp_org_leader_tab
EXCEPTIONS
PATH_ERROR = 1
ROOT_ERROR = 2
NOTHING_FOUND = 3
OTHERS = 4
.

IF sy-subrc <> 0.


PERFORM oben_baum USING wa_ls_leading_org_high-sobid
CHANGING pernr.
ELSE.
* return true value
READ TABLE tmp_org_leader_tab INDEX 1 INTO wa_tmp_org_leader_tab.
move wa_tmp_org_leader_tab-OBJID to pernr.

endif.

endif.



ENDFORM.

ну вот, не ругайте сильно :)


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

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


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

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


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

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