SAPфорум.RU
https://sapboard.ru/forum/

Ограничение DTP (ABAP)
https://sapboard.ru/forum/viewtopic.php?f=12&t=95346
Страница 1 из 1

Автор:  Rayman [ Ср, авг 23 2017, 18:26 ]
Заголовок сообщения:  Ограничение DTP (ABAP)

Коллеги, подскажите пожалуйста куда двигаться.
В BW, а особенно в ABAP новичок. Есть задача.
В DTP нужно написать ограничение на периоды с переменной tvarv ZCN15_PERIOD, если ZCN15_PERIOD не заполнено, то выбираем действительные записи только на текущий день.
Изображение
В фильтре нужно создать подпрограмму для параметров: действительно с и действительно по, чтобы попадали записи, действительные на указанный период, то есть с переменной tvarv ZCN15_PERIOD, если там пусто, то действительные на сегодня.

Автор:  12ozmdm [ Чт, авг 24 2017, 06:37 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)

https://archive.sap.com/discussions/thread/1300102
https://sap-bi-tai.blogspot.ru/2014/11/tvarvc.html
viewtopic.php?f=12&t=82907
viewtopic.php?f=13&t=64154
поищите в инете или тут "DTP tvarvc" есть много примеров.

Автор:  Rayman [ Чт, авг 24 2017, 15:08 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)

12ozmdm написал:
https://archive.sap.com/discussions/thread/1300102
https://sap-bi-tai.blogspot.ru/2014/11/tvarvc.html
viewtopic.php?f=12&t=82907
viewtopic.php?f=13&t=64154
поищите в инете или тут "DTP tvarvc" есть много примеров.

В итоге написал так, есть какие-нибудь замечания?
Code:
data: l_idx like sy-tabix.
          read table l_t_range with key
               fieldname = 'DATEFROM'.
          l_idx = sy-tabix.


          DATA lv_date TYPE datum.
          DATA lv_temp TYPE TVARV_VAL.

          SELECT single low from tvarvc INTO lv_temp WHERE name =
          'ZCN15_PERIOD'.
            IF sy-subrc <> 0.
              lv_date = sy-datum.
            ELSE.
              lv_date = lv_temp.
            ENDIF.

            l_t_range-iobjnm = 'DATEFROM'.
            l_t_range-fieldname = 'DATEFROM'.
            l_t_range-sign = 'I'.
            l_t_range-option = 'BT'.
            l_t_range-low = '10000101'.
            l_t_range-high = lv_date.


          if l_idx <> 0.
            modify l_t_range index l_idx.
          else.
            append l_t_range.
          endif.
          p_subrc = 0.

Code:
data: l_idx like sy-tabix.
          read table l_t_range with key
               fieldname = 'DATETO'.
          l_idx = sy-tabix.


          DATA lv_date TYPE datum.
          DATA lv_temp TYPE TVARV_VAL.

          SELECT single high from tvarvc INTO lv_temp WHERE name =
          'ZCN15_PERIOD'.
            IF sy-subrc <> 0.
              lv_date = sy-datum.
            ELSE.
              lv_date = lv_temp.
            ENDIF.

            l_t_range-iobjnm = 'DATETO'.
            l_t_range-fieldname = 'DATETO'.
            l_t_range-sign = 'I'.
            l_t_range-option = 'BT'.
            l_t_range-low = lv_date.
            l_t_range-high = '99991231'.


          if l_idx <> 0.
            modify l_t_range index l_idx.
          else.
            append l_t_range.
          endif.
          p_subrc = 0.

Автор:  12ozmdm [ Пт, авг 25 2017, 05:54 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)

Ещё при считывании из TVARVC применяте BYPASSING BUFFER в SELECT.
viewtopic.php?p=546119

Автор:  Rayman [ Пт, авг 25 2017, 10:45 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)

12ozmdm написал:
Ещё при считывании из TVARVC применяте BYPASSING BUFFER в SELECT.
http://sapboard.ru/forum/viewtopic.php?p=546119

Спасибо, а если буферизация отключена, то правка не нужна?
Изображение

Автор:  12ozmdm [ Пн, авг 28 2017, 10:13 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)  Тема решена

не нужна.

Автор:  Rayman [ Пн, авг 28 2017, 14:59 ]
Заголовок сообщения:  Re: Ограничение DTP (ABAP)

12ozmdm написал:
не нужна.

Благодарю за советы! :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/