Текущее время: Сб, июл 19 2025, 01:15

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: ABAP HR. Ошибка в программе HRUUTRV0 Создание приказов для командировок
СообщениеДобавлено: Вт, окт 01 2013, 18:53 
Специалист
Специалист

Зарегистрирован:
Пн, дек 12 2011, 08:57
Сообщения: 128
Откуда: Самара
Пол: Мужской
Добрый день! Есть проблема с программой HRUUTRV0 «Создание приказов для командировок». В случае если создаются приказы для нескольких табельных номеров, то при создании записей в 0298ИТ для второго табельного номера возникает ошибка «Запись, предназначенная для удаления не найдена 00000000 0000000000000000000»? № сообщения PG224.
В отладчике нашел, что при создании для второго табельного номера записи в 0298ИТ поля PSYST-FSTAT = 0002 и PSYST-IOPER = MOD. Далее система хочет удалить запись из буфера PS, в котором данной строки нет (как я понял).
При вызове ФМ HR_PSBUFFER_INITIALIZE (через расширение) перед созданием записей данной ошибки не возникает.
Кто сталкивался с проблемой, куда смотреть? Заранее спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ABAP HR. Ошибка в программе HRUUTRV0 Создание приказов для командировок
СообщениеДобавлено: Вт, окт 01 2013, 21:14 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
1. Поискать ноты
2. Написать в поддержку SAP

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP HR. Ошибка в программе HRUUTRV0 Создание приказов для командировок
СообщениеДобавлено: Чт, окт 03 2013, 07:25 
Специалист
Специалист

Зарегистрирован:
Пн, дек 12 2011, 08:57
Сообщения: 128
Откуда: Самара
Пол: Мужской
В отладчике нашел, что PSYST-IOPER изменяется в подпрограмме re_0000_ps MP029800, где считываются данные из буфера PS, причем данные считываются без ограничения по табельному номеру (при этом в буфере хранятся данные, созданные при обработке предыдущего табельного номера):
Code:
  ret_c = 0.
  LOOP AT ps WHERE infty EQ '0298' AND begda EQ dt AND
                   subty = pspar-subty.
    CHECK ps-data1(2) EQ massn.
    IF ps-data1+2(2) EQ massg.
      ret_c = 1.
*   else.
*     delete ps.
*      MOVE PS TO P0298.
      CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn        "XPS-UNI
        EXPORTING                                              "XPS-UNI
          prelp  = ps-prelp                                    "XPS-UNI
        IMPORTING                                              "XPS-UNI
          pnnnn  = p0298.                                      "XPS-UNI
*      MOVE PS TO PSAVE.
      CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn        "XPS-UNI
        EXPORTING                                              "XPS-UNI
          prelp  = ps-prelp                                    "XPS-UNI
        IMPORTING                                              "XPS-UNI
          pnnnn  = psave.                                      "XPS-UNI
      MOVE ps TO cprel.
    ENDIF.
  ENDLOOP.
  IF ret_c EQ 1.
** prevent to add many records in it 0298 with the same fields:
** begda, endda, massn, massg
** if operation is INSERT then change in to MODIFY
    IF psyst-ioper EQ insert.
      psyst-iinit = yes.
      psyst-ioper = modify.
      pspar-actio = modify.
      pspar-seqnr = p0298-seqnr.
      rp50m-begda = dt.
      rp50m-endda = dt.
      rp50m-subty = pspar-subty.
      PERFORM get_first_infotype(sapfp50m) USING no modify.
      LEAVE SCREEN.
    ENDIF.
  ELSE.
    psyst-iinit = yes.
    p0298-massn = massn.
    p0298-massg = massg.
    IF psyst-ioper NE insert.
      if psyst-ioper = delete.
        leave program.
      else.
        psyst-ioper = insert.
        LEAVE SCREEN.
      endif.
    ENDIF.
  ENDIF.

Или буфер перестал сбрасываться, или где-то проверки не проходят.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ABAP HR. Ошибка в программе HRUUTRV0 Создание приказов для командировок
СообщениеДобавлено: Пн, окт 07 2013, 16:57 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
ski написал:
В отладчике нашел, что PSYST-IOPER изменяется в подпрограмме re_0000_ps MP029800, где считываются данные из буфера PS, причем данные считываются без ограничения по табельному номеру (при этом в буфере хранятся данные, созданные при обработке предыдущего табельного номера):


обычное дело когда вы запускаете в лупе то, что сап планировал для работы с одной единицей.
попробуйте запоминать в свою таблицу все значения из той функции которая сбрасывает глобальную таблицу в группе функций( очевидно что вы ее где-то пользуете раз уже буффер сбрасывается ).


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

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


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

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


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

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