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

Полезные трюки ABAP
https://sapboard.ru/forum/viewtopic.php?f=13&t=87197
Страница 5 из 8

Автор:  Бородин Игорь [ Вт, окт 25 2016, 23:08 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Краткий обзор полезных стандартных функций с примерами , дабы лишний раз не изобретать велосипед.

Автор:  UKY [ Пн, янв 09 2017, 04:52 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Наткнулся на интересный способ использования двоеточия в ABAP 7.4 на примере CL_SALV_TREE:
Code:
mo_object_tree->get_columns( )->get_column(:
  'OBJECTNAME' )->set_visible( abap_false ),
  'COMPONENT' )->set_visible( abap_false ),
  'COMPONENTTYPE' )->set_visible( abap_false ),
  'PARENTCOMPONENT' )->set_visible( abap_false )
.

Автор:  Saperx [ Ср, фев 15 2017, 12:59 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Orgazm написал:
Как сделать call transaction в новом окне?

Code:
call function 'ABAP4_CALL_TRANSACTION' starting new task 'NONE'
            exporting tcode = 'TCODE'.

У этого фника есть еще одна классная особенность. Он позволяет запускать по RFC транзакции в других системах. В простых(просмотровых, например, посмотреть материал в другой системе) случаях это очень удобно.

Автор:  olegbash [ Сб, мар 11 2017, 16:48 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

В редакторе кода:
CTRL+S = сохранение кода на сервере (обычное сохранение программы)
CTRL+SHIFT+S = сохранение кода на клиенте (в текстовый файлик)

CTRL+C - копирование участка кода
CTRL+V - вставка участка кода
CTRL+SHIFT+V - вызов меню/стэка копированных ранее участков кода с возможностью вставки

CTRL+U - перевод в верхний регистр
CTRL+L - перевод в нижний регистр

прочие полезные HotKey можно увидеть при вызове меню в редакторе.

Автор:  Friday [ Чт, апр 06 2017, 10:26 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

olegbash написал(а):
В редакторе кода:
CTRL+U - перевод в верхний регистр
CTRL+L - перевод в нижний регистр


Зачем это нужно?
Лучше воспользоваться Pretty printer

Автор:  LAT [ Чт, апр 06 2017, 15:15 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Friday написал(а):
Лучше воспользоваться Pretty printer
Например:
1) После Pretty printer Ctrl+Z не пашет
2) Pretty printer не действует на литералы и комментарии
3) Применение Pretty printer для кода с синтаксическими ошибками может привести к спецэффектам форматирования

Автор:  Dante [ Пт, апр 07 2017, 16:28 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

olegbash написал(а):
В редакторе кода:
CTRL+S = сохранение кода на сервере (обычное сохранение программы)
CTRL+SHIFT+S = сохранение кода на клиенте (в текстовый файлик)

CTRL+C - копирование участка кода
CTRL+V - вставка участка кода
CTRL+SHIFT+V - вызов меню/стэка копированных ранее участков кода с возможностью вставки

CTRL+U - перевод в верхний регистр
CTRL+L - перевод в нижний регистр

прочие полезные HotKey можно увидеть при вызове меню в редакторе.

Хорошие функции, вот ещё 2 незаменимые:
Ctrl+D - дублирование строки (БЕЗ БУФЕРА!)
Ctr+Shift+L - удаление строки (БЕЗ БУФЕРА!)

Автор:  Kengur [ Чт, апр 27 2017, 16:14 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

UKY написал(а):
Наткнулся на интересный способ использования двоеточия в ABAP 7.4 на примере CL_SALV_TREE:
Code:
mo_object_tree->get_columns( )->get_column(:
  'OBJECTNAME' )->set_visible( abap_false ),
  'COMPONENT' )->set_visible( abap_false ),
  'COMPONENTTYPE' )->set_visible( abap_false ),
  'PARENTCOMPONENT' )->set_visible( abap_false )
.

а какая при этом цепочка вызовов? get_colums() вызовется 4 раза или 1?

Автор:  UKY [ Чт, май 11 2017, 04:54 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Kengur написал(а):
а какая при этом цепочка вызовов? get_colums() вызовется 4 раза или 1?

Хороший вопрос.
Смоделировал ситуацию и получилось, что всё таки 4 раза.

Автор:  LAT [ Чт, июн 29 2017, 18:12 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Иногда бывает полезным запуск транзакции в новом окне с другим языком входа:
Code:
REPORT zlat_lang.

PARAMETERS: s_spras TYPE spras OBLIGATORY.
PARAMETERS: s_tcode TYPE tcode OBLIGATORY.

START-OF-SELECTION.
  SET LOCALE LANGUAGE s_spras.
  CALL FUNCTION 'ABAP4_CALL_TRANSACTION' DESTINATION 'NONE'
    EXPORTING
      tcode = s_tcode.

Автор:  olegbash [ Вт, авг 29 2017, 15:24 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

чтобы ссылка была, а то иногда теряю :D

https://blogs.sap.com/2015/10/25/abap-7 ... reference/

Автор:  Kuranov.Dmitry [ Ср, сен 06 2017, 12:43 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

LAT написал(а):
Friday написал(а):
Лучше воспользоваться Pretty printer
Например:
1) После Pretty printer Ctrl+Z не пашет
2) Pretty printer не действует на литералы и комментарии
3) Применение Pretty printer для кода с синтаксическими ошибками может привести к спецэффектам форматирования


4)Pretty printer иногда ломает макросы пример:

Code:
DEFINE mymacros.
  fieldcatalog-fieldname = '&1'.
  append fieldcatalog.
END-OF-DEFINITION.



mymacros FIELDNAME.


FIELDNAME станет маленькими буквами, и обернется в строковый литерал уже маленькими.

5) Pretty Printer отметит всё форматирование в сравнении версий

Автор:  LAT [ Ср, сен 06 2017, 13:00 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Kuranov.Dmitry написал(а):
FIELDNAME станет маленькими буквами, и обернется в строковый литерал уже маленькими.
:) Попробуйте проверить.

Автор:  Kuranov.Dmitry [ Ср, сен 06 2017, 13:05 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

LAT написал(а):
Kuranov.Dmitry написал(а):
FIELDNAME станет маленькими буквами, и обернется в строковый литерал уже маленькими.
:) Попробуйте проверить.

в 4.6 версии портит.

до:

Code:
REPORT  zkur_test4.


DEFINE mymacros.
  fieldcatalog-fieldname = '&1'.
  append fieldcatalog.
END-OF-DEFINITION.



mymacros FIELDNAME.



после:
Code:
REPORT  zkur_test4.


DEFINE mymacros.
  fieldcatalog-fieldname = '&1'.
  append fieldcatalog.
END-OF-DEFINITION.



mymacros fieldname.

Автор:  LAT [ Ср, сен 06 2017, 13:45 ]
Заголовок сообщения:  Re: Полезные трюки ABAP

Я имел в виду проверить "обернется в строковый литерал уже маленькими", а не работу PrettyPrinter.

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