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

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


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

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


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

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