SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Запуск ALV grid в фоне



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Сергей
Участник
Участник



Joined: 25 Oct 2007
Posts: 49

PostPosted: Wed Jan 23, 2008 11:24 am    Post subject: Запуск ALV grid в фоне Reply with quote

Добрый день!

Возможно ли запланировать выполнение отчета, результат которого выводится в ALV Grid в фоне? Отчет выполняется очень долго, пользователи хотят видеть результаты утром.
Back to top
View user's profile Send private message
AlexanderX
Участник
Участник



Joined: 23 Jan 2008
Posts: 10

PostPosted: Wed Jan 23, 2008 12:56 pm    Post subject: Reply with quote

В фоне может выполнятся только полноэкранный ALV. Тот ALV, что в контейнере, в фоне работать не может.
_________________
best regards
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 165
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 23, 2008 1:47 pm    Post subject: Reply with quote

AlexanderX wrote:
В фоне может выполнятся только полноэкранный ALV. Тот ALV, что в контейнере, в фоне работать не может.


Что Вы понимаете ввиду под Полноэкранным? ALV List?
Back to top
View user's profile Send private message Blog Visit poster's website
AlexanderX
Участник
Участник



Joined: 23 Jan 2008
Posts: 10

PostPosted: Wed Jan 23, 2008 5:01 pm    Post subject: Reply with quote

под "полноэкранным" я понимаю ALV созданный с помощью ФМ:
REUSE_ALV_GRID_DISPLAY
или при помощи класса CL_SALV_TABLE:
Code:

data: gt_outtab  type table of  SOMETHING.
data: gr_table type ref to cl_salv_table.
cl_salv_table=>factory(
        importing
          r_salv_table = gr_table
        changing
          t_table      = gt_outtab ).
gr_table->display( ).

_________________
best regards
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 165
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 23, 2008 5:24 pm    Post subject: Reply with quote

AlexanderX wrote:
под "полноэкранным" я понимаю ALV созданный с помощью ФМ:
REUSE_ALV_GRID_DISPLAY
или при помощи класса CL_SALV_TABLE:


Понятно. На самом деле Вы правы только отчасти. Существует мнение, что объектный грид не работает в фоне, но на самом деле оно основано на том, что логику создания и вызова GRID принято вставлять в PBO модуль экрана, что и приводит к дампам, но ни грид, ни привязка его к конейнеру здесь не причем. Он спроектирован по умному и внутри анализирует sy-batch. Если эта системная переменная выставлена, то автоматически alv переключается на вывод списка (LIST). Причем не зависит, выводите Вы GRID или TREE.
Приведенный ниже пример показывает, как заставить работать alv grid в background.

Code:
END-OF-SELECTION.

* заполнение fieldcatalog и таблиц сортировки
  gs_fcat    TYPE lvc_t_fcat.
  gs_sort    TYPE LVC_T_SORT.
...

* вызов alv grid
  IF sy-BATCH IS INITIAL.
    CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY...
    CALL SCREEN 100.
  ELSE.
    CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY...
    SET SCREEN 0.
    LEAVE SCREEN.
  ENDIF.


Сергею нужно создать фоновое задание через sm36, запланировать
его выполнение на ночь, а утром результат выполнения будет доступен через sm37. Естественно, пользователь увидит отформатированный LIST, а не полноценный интерактивный GRID.
Back to top
View user's profile Send private message Blog Visit poster's website
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri Jan 25, 2008 7:40 pm    Post subject: Reply with quote

Возможен и другой вариант
Code:

END-OF-SELECTION.

* заполнение fieldcatalog и таблиц сортировки
  gs_fcat    TYPE lvc_t_fcat.
  gs_sort    TYPE LVC_T_SORT.
...

* вызов alv grid
call screen 100.

*PBO-логика экрана 100
MODULE start_alv.

  IF g_grid IS INITIAL.
    IF cl_gui_alv_grid=>offline() IS INITIAL. "Нормальный режим
      CREATE OBJECT g_container ...
    ENDIF.
* При указании пустого i_parent объект g_grid выводится в виде списка
    CREATE OBJECT g_grid
      EXPORTING
        i_parent = g_container.

    CALL METHOD g_grid->set_table_for_first_display ...
  ELSE.
    CALL METHOD g_grid->refresh.
  ENDIF.
ENDMODULE.

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
fashionPunk
Участник
Участник



Joined: 07 Oct 2007
Posts: 17

PostPosted: Tue Feb 26, 2008 12:43 pm    Post subject: Reply with quote

Мне кажется если использовать контейнер типа
DATA: container TYPE REF TO cl_gui_docking_container.

то долно прокатить, сам не пробовал, но вообще ФМ REUSE_ALV_GRID_DISPLAY как раз использует этот тип контейнера
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.