Текущее время: Пн, июн 30 2025, 21:13

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


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

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


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

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