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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: дамп в HR_INFOTYPE_OPERATION
СообщениеДобавлено: Вт, янв 13 2015, 11:56 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 13 2006, 14:42
Сообщения: 93
Пол: Мужской
Ситуация такая: в цикле по таблице с табельными номерами вызываю ФМ HR_INFOTYPE_OPERATION для добавления записей в 15-й инфо-тип. Не отрабатывает весь список табельных номеров, где-то вылетает в дамп по нехватке памяти:
Code:
----------------------------------------------------------------------------------------------------
|Краткий текст                                                                                     |
|    SAP paging overflow when storing data in the ABAP/4 memory.                                   |
----------------------------------------------------------------------------------------------------

Вылетает вот в этом месте:
Code:
----------------------------------------------------------------------------------------------------
|Фрагмент исходного текста программы                                                               |
----------------------------------------------------------------------------------------------------
|Строк|ИсхднТкст                                                                                   |
----------------------------------------------------------------------------------------------------
|  937|ENDMODULE.                                                                                  |
|  938|*---------------------------------------------------------------------*                     |
|  939|*       MODULE POST_INPUT_CHECKS INPUT.                               *                     |
|  940|*---------------------------------------------------------------------*                     |
|  941|*       Funktionscode-Eingabe nach Eingabepruefung                    *                     |
|  942|*       QNUE4778 Modul in Routinen zerlegt                            *                     |
|  943|*---------------------------------------------------------------------*                     |
|  944|MODULE post_input_checks INPUT.                                                             |
|  945|  DATA: akt_dynnr(4) TYPE n.                                                                |
|  946|                                                                                            |
|  947|  if cprel-infty = '0002'.                               "XYLN212840                        |
|  948|*   perform check_it0002.        "XYLN212840             "VLDN212840_2                      |
|  949|    perform check_it0002(mp000200).                      "VLDN212840_2                      |
|  950|  endif.                                                 "XYLN212840                        |
|  951|*\begin{delete}                                            "XPVN0384010                     |
|  952|*  PERFORM check_date_order CHANGING cprel-begda          "XYLPH9K000775                    |
|  953|*                               cprel-endda.              "XYLPH9K000775                    |
|  954|*\end{delete}                                              "XPVN0384010                     |
|  955|  IF fcode EQ 'UPDL'. fcode = save. ENDIF.                  "QNUR3                          |
|  956|  MOVE sy-dynnr TO akt_dynnr.                               "QNUK60483                      |
|  957|  IF akt_dynnr(1) EQ t582a-edynr(1).   "Einzelbild                                          |
|  958|*\begin{delete}                                          "XPVN0384010_2                     |
|  959|*    IF psyst-fstat <> FCODE_AZ.                            "XPVN0384010                    |
|  960|*      PERFORM check_date_order CHANGING cprel-begda        "XPVN0384010                    |
|  961|*                                   cprel-endda.            "XPVN0384010                    |
|  962|*    ENDIF.                                                 "XPVN0384010                    |
|  963|*\begin{delete}                                          "XPVN0384010_2                     |
|  964|    PERFORM post_input_edynr.          " form ABPER, form UPDATE_BUFFER                     |
|  965|    PERFORM fcode_edynr.            " Fcode SAVE, LIST,BACK,LEAVE,DSYS                      |
|  966|    PERFORM end_of_screen.             " Dyn.Massn., naechstes Bild                         |
|>>>>>|  ELSE.                                                                                     |
|  968|    PERFORM fcode(sapfp50m).           "Listbild                                            |
|  969|  ENDIF.                                                                                    |
|  970|ENDMODULE.                                                                                  |

В отладку выйти не могу, похоже, в операторе CALL DIALOG такое не предусмотрено.
Установить точку прерывания в месте вылета в дамп тоже не получается.
Где системе не хватает памяти?
Если учесть, что перед вызовом я чищу все буфера, которые знаю:
Code:
      CALL FUNCTION 'HR_INITIALIZE_BUFFER'
*       EXPORTING
*         TCLAS         = 'A'
*         PERNR         = 00000000
                .
      Perform initialize_ps(sapfp50p).

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty                  = '0015'
          number                 = it_res-pernr
          subtype                = it_res-lgart
*       OBJECTID               =
*       LOCKINDICATOR          =
          validityend            = it_res-endda
          validitybegin          = it_res-endda
          recordnumber           = it_res-seqnr
          record                 = p0015
          operation              = it_res-oper
*       TCLAS                  = 'A'
*       DIALOG_MODE            = '0'
*       NOCOMMIT               =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
        IMPORTING
          return                 = l_msg
*       KEY                    =
                .

Количество записей в таблице 2-3тыс.
Что там ещё отбирает память?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дамп в HR_INFOTYPE_OPERATION
СообщениеДобавлено: Вт, янв 13 2015, 16:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 26 2007, 08:42
Сообщения: 175
ФМ HR_INITIALIZE_BUFFER рекомендуют использовать для очистки буфера при чтении данных с помощью HR_READ_INFOTYPE.
Если используете фм HR_INFOTYPE_OPERATION, то на каждом цикле апдейта рекомендуют вызывать фм HR_PSBUFFER_INITIALIZE (внутри не только Perform initialize_ps(sapfp50p)).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: дамп в HR_INFOTYPE_OPERATION
СообщениеДобавлено: Вт, янв 13 2015, 17:16 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 13 2006, 14:42
Сообщения: 93
Пол: Мужской
Спасибо, буду проверять.


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

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


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

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


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

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