Текущее время: Вс, июл 27 2025, 05:53

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


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

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


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

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