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

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


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

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


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

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