Текущее время: Ср, июл 23 2025, 23:44

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Разделение расчета на 2 в программе HRULCAL0_CE
СообщениеДобавлено: Вс, мар 03 2013, 11:19 
Специалист
Специалист

Зарегистрирован:
Чт, окт 04 2012, 15:45
Сообщения: 135
Здравствуйте.

Столкнулись со следующей проблемой при расчете работника у которого было мероприятие по смене орг. единицы.
Расчет разделился на 2 части.

Изображение

В программе расчета HRULCAL0 для анализа использовался ракурс V_530_E.

Code:
REFRESH sdates. CLEAR sdates.
  LOOP AT p0000 WHERE begda GE edatum
                  AND begda LE pn-endda.
    PERFORM re530 USING p0000-massn p0000-massg.
    [b]IF t530-persp EQ 'X'.[/b]
      MOVE p0000-begda TO sdates-datum.
      APPEND sdates.
    ENDIF.
  ENDLOOP.


В программе HRULCAL0_CE t530-persp не используется.
Может кто знает как теперь разделяется расчет? Какие настройки сделать чтобы он не разделялся?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Разделение расчета на 2 в программе HRULCAL0_CE
СообщениеДобавлено: Вт, мар 05 2013, 10:49 
Специалист
Специалист

Зарегистрирован:
Чт, окт 04 2012, 15:45
Сообщения: 135
Если кому интересно, в HRULCAL0_CE сделано следующим образом.

Класс CL_HR_PAYROLL_MAIN_BASIS
метод FILL_SDATES

Code:
METHOD fill_sdates .
  DATA: l_p0000      TYPE p0000,
        l_p0001      TYPE p0001,
        l_persp      TYPE t530-persp,
        l_sdate      TYPE hrpy_sdates,
        l_first      TYPE rp_xfeld,
        l_last_juper TYPE p0001-juper,
        l_dummy(1)   TYPE c,               "#EC NEEDED
        l_msg_main   TYPE hrplog_msg_main.

  LOOP AT pp0000 INTO  l_p0000
                 WHERE pernr EQ imp_peras
                 AND   begda GE imp_begda
                 AND   begda LE endda.

    SELECT SINGLE persp INTO   l_persp
                        FROM   t530
                        WHERE  massn  = l_p0000-massn
                        AND    massg  = l_p0000-massg.
    IF sy-subrc NE 0.
      MESSAGE e729(hrpay99calc) WITH l_p0000-massn l_p0000-massg
                                INTO l_dummy.
*     Kein Eintrag in Tabelle T530 für Massnahme &1 Grund &2
      raise_error_occured l_msg_main chn_messages 'E' space
                          imp_peras '0' 'A'.
    ENDIF.
    IF l_persp EQ 'X'.
      l_sdate = l_p0000-begda.
      INSERT l_sdate INTO TABLE chn_sdates.
    ENDIF.
  ENDLOOP.
* Hier werden zusätzlich alle JUPER-Wechsel abgestellt, damit später
* die anderen Verträge nachgesplittet werden können. Dies ersetzt
* jedoch nicht den JUPER-Splitt in FILL_APER_REGULAR_PERAS, da dort
* die APER mit dem richtigen Wert für JUPER gefüllt wird.
  LOOP AT pp0001 INTO  l_p0001
                 WHERE pernr EQ imp_peras
                 AND   endda GE imp_begda
                 AND   begda LE endda.
    IF l_first EQ space.
      l_last_juper = l_p0001-juper.
      l_first = 'X'.
    ENDIF.
    IF l_last_juper NE l_p0001-juper.
      l_sdate = l_p0001-begda.
      INSERT l_sdate INTO TABLE chn_sdates.
    ENDIF.
  ENDLOOP.
ENDMETHOD.


Я был не прав и признак из V_530_E всё же используется.


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

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


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

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


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

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