Текущее время: Вс, авг 03 2025, 23:13

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: HR : чтение данных 8 инфотипа
СообщениеДобавлено: Чт, мар 15 2007, 18:20 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 25 2006, 13:26
Сообщения: 13
Всем доброго времени суток!
Может кто подскажет есть ли стандартное средство для чтения данных 8 ИТ, а именно сумм по видам оплат которые оцениваются косвенно и в самой таблице pa0008 не хранятся.
Заранее спасибо !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 15 2007, 18:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, апр 07 2006, 22:15
Сообщения: 184
хм. а что ФМ HR_READ_INFOTYPE не катит?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 15 2007, 18:43 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 25 2006, 13:26
Сообщения: 13
8 ИТ несколько специфический. Сейчас читаю его так:
использую ЛБД pnp

Code:
DATA: BEGIN OF LA,
            LGA LIKE P0008-LGA01,
            BET LIKE P0008-BET01,
            ANZ LIKE P0008-ANZ01,
            EIN LIKE P0008-EIN01,
            OPK LIKE P0008-OPK01,
      END OF LA.

    rp_provide_from_last p0008 space pn-begda pn-endda.
    IF pnp-sw-found eq 1.
      DO 40 TIMES VARYING LA
                  FROM P0008-LGA01
                  NEXT P0008-LGA02.
        IF LA-LGA IS INITIAL.
          EXIT.
        ELSE.
          loop at t_zsblg.
            if LA-LGA eq t_zsblg-lgart.
              s_zsinitstoaward-ZZ_SBASE = s_zsinitstoaward-ZZ_SBASE + LA-BET.
            endif.
          endloop.
        ENDIF.
      ENDDO.
    ENDIF.



Суммы по видам оплат в самой таблице инфотипа не всегда хранятся, если есть косвенная оценка ВО то сумма подтягивается из тарифной структуры. Понятно что сделать select из таблички можно. Но наверняка есть какой-нибудь стандартный ФМ для этих дел...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 15 2007, 19:08 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, фев 08 2007, 11:44
Сообщения: 52
Вот когда-то на заре туманной юности писал для 4.0B
Code:
INCLUDE mplgad00.

TABLES: pernr,
            t001p.   

INFOTYPES: 0001,
                  0007
                  0008.

DATA: BEGIN OF str_p0008,
        lgart LIKE p0008-lga01,
        betrg LIKE p0008-bet01,
        anzhl LIKE p0008-anz01,
        ein   LIKE p0008-ein01,
        opken LIKE p0008-opk01,
      END OF str_p0008.
.
.

GET pernr.

  rp_provide_from_last p0001 space pn-begda pn-endda.

  rp-read-t001p p0001-werks p0001-btrtl space.

.
.
   rp_provide_from_last p0007 space pn-begda pn-endda.
   rp_provide_from_last p0008 space pn-begda pn-endda.

CLEAR tbindbw[].

      DO number_of_lgart_in_p0008 TIMES
         VARYING str_p0008-lgart FROM p0008-lga01 NEXT p0008-lga02
         VARYING str_p0008-betrg FROM p0008-bet01 NEXT p0008-bet02
         VARYING str_p0008-anzhl FROM p0008-anz01 NEXT p0008-anz02
         VARYING str_p0008-ein   FROM p0008-ein01 NEXT p0008-ein02
         VARYING str_p0008-opken FROM p0008-opk01 NEXT p0008-opk02
         VARYING str_indbw       FROM p0008-ind01 NEXT p0008-ind02.

        IF str_p0008-lgart NE space AND str_p0008-lgart CN '0 '.
          CLEAR   tbindbw.
          MOVE-CORRESPONDING str_p0008 TO tbindbw.
          MOVE str_indbw TO tbindbw-indbw.
          IF str_indbw <> 'I'.
            MOVE p0008-ancur TO tbindbw-waers.
          ENDIF.
          APPEND  tbindbw.
        ENDIF.
      ENDDO.


      CALL FUNCTION 'RP_EVALUATE_INDIRECTLY_P0008'
           EXPORTING
                pbegda                       = pn-endda
                pmolga                       = t001p-molga
                pp0001                       = p0001
                pp0007                       = p0007
                pp0008                       = p0008
                ppernr                       = pernr-pernr
           TABLES
                ptbindbw                     = tbindbw
           EXCEPTIONS
                bad_parameters               = 1
                error_at_indirect_evaluation = 2
                OTHERS                       = 3.


в итоге tbindbw содержит скорректированные значения


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 16 2007, 11:32 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 25 2006, 13:26
Сообщения: 13
Спасибо! :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 30 2008, 10:28 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 08 2008, 09:30
Сообщения: 55
А ФМ HR_RU_GET_PAY разве не для этого?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 01 2008, 12:31 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 08 2008, 09:30
Сообщения: 55
UP

Неужели никто не знает?!!

Дело в том, что надо определять фактический оклад, причем, учитывая косвенную оценку. А изобретать велосипед очень нехотелось бы :-/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 01 2008, 12:56 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Mystic_you написал(а):
UP

Неужели никто не знает?!!

Дело в том, что надо определять фактический оклад, причем, учитывая косвенную оценку. А изобретать велосипед очень нехотелось бы :-/
За месяц трудно было разобраться в коротеньком коде ФМ?
Этот ФМ возвращает только определённые виды оплат (на основе значений таблицы t52d7). Вам привели практически рабочий код (см vovochka). Или взять код из ФМ-а.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 01 2008, 13:52 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 08 2008, 09:30
Сообщения: 55
Спасибо за быстрый ответ.
Я разорбрался в коде этого фм, и вижу что там забиты две группы видов оплат. Я думал, может быть, настройка должна делаться именно через эти группы видов оплат...

Видимо, придется оформлять отдельный ФМ для фактического оклада (для "Штатного расписания" и других отчетов...) Ооочень странно что нет стандартного!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 05 2008, 18:25 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 31 2008, 15:58
Сообщения: 70
Кстати, напомнило про чтение зарплаты.
Результат расчета нельзя читать через ЛБД, событием GET PAYROLL.
Для нашей страны она неработает.

Ну и код:

VARYING str_p0008-lgart FROM p0008-lga01 NEXT p0008-lga02 .

считается устарвшей конструкцией.

Code:
  DO 40 TIMES.
    ADD 1 TO num.
    CONCATENATE 'LGA' num INTO lga.
    CONCATENATE 'BET' num INTO bet.
    ASSIGN COMPONENT lga OF STRUCTURE p_0008 TO <fs_lga>.
    IF <fs_lga> = p_lgart.
      ASSIGN COMPONENT bet OF STRUCTURE p_0008 TO <fs_bet>.
      p_bet = <fs_bet>. " * lt_1001-prozt / 100.
      UNASSIGN: <fs_bet>.
      UNASSIGN: <fs_lga>.
      EXIT.
    ENDIF.
    UNASSIGN: <fs_lga>.
  ENDDO.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 05 2008, 21:06 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Абрамов Виктор написал(а):
Кстати, напомнило про чтение зарплаты.
Результат расчета нельзя читать через ЛБД, событием GET PAYROLL.
Для нашей страны она неработает.

Всё работает.
Абрамов Виктор написал(а):
Ну и код:

VARYING str_p0008-lgart FROM p0008-lga01 NEXT p0008-lga02 .

считается устаревшей конструкцией.

DO VARYING считается не устаревшей, а не unicode-совместимой.
Есть вариант этой конструкции, который совместим с unicode. К стати этот вариант как раз и приведен в примере выше.

ЗЫ.Для оформления кода, пожалуйста, испольуйте тег "code".

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 10:39 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 31 2008, 15:58
Сообщения: 70
Спасибо, про тэг Code буду знать.
Про событие GET PAYROLL интересно, надо подраконить еще тогда.
Про дополнение varying/vary. Оно устарело не в том смысле :) . Просто лучше его не использовать по нескольким причинам.
  1. Передача по ссылке, вместо копирования.
  2. Если у нас элементов структуры меньше, чем мы по идее должны обойди в DO, будет дамп(ДинамОшибка DO_WHILE_VARY_NOT_IN_RANGE). Assign дает просто sy-subrc<>0
  3. Про unicode Bully прав. Данная констукция конечно же совместима, но если assign у нас будем соместим всегда, то varying нет(можно конечно просто контролировать совместимость).
P.S. Не подскажите, каким тэгом вставлять сообщения других пользователей в рамке???


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 19:17 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Абрамов Виктор написал(а):
P.S. Не подскажите, каким тэгом вставлять сообщения других пользователей в рамке???

Кнопка цитировать, либо тэг Quote.
Для оформления нумерованных списков удобно пользовать List=1.
Посмотрите, как я поправил ваше последнее соббщение.

_________________
/nex


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

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


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

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


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

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