Текущее время: Пт, июл 25 2025, 05:47

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


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

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


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

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