Меню

Три простых шага для написания ABAP отчета ALV

|

В статье рассматривается процесс создания отчета с колонками: заказчик, дата отгрузки, номер накладной, номер счет фактуры и пункт отгрузки в «простых» шага:

· первый шаг - задание начальных параметров,

· второй шаг - запись данных во внутреннюю таблицу,

· третий шаг - вывод данных в таблицу ALV (ABAP LIST VIEWER).

В системе SAP ERP существует большое количество стандартных отчетов по продажам, производству, закупкам, однако, иногда требуется создать новый отчет под конкретные требования и задачи. Лучше всего для этого подходит язык программирования ABAP.

Разработку нового отчета можно осуществить в три «простых» шага:

  • первый шаг - задание начальных параметров,
  • второй шаг - запись данных во внутреннюю таблицу,
  • третий шаг - вывод данных в таблицу ALV (ABAP LIST VIEWER).

Задача: создать отчет с колонками: заказчик, дата отгрузки, номер накладной, номер счет фактуры и пункт отгрузки.

Решение.

Шаг 1.  На первом шаге через оператор REPORT определяем имя программы, через оператор TABLES таблицы, с которыми будем работать, через операторы SELECT-OPTIONS поля на экране выбора, которые должен будет указать пользователь, и через оператор TYPES и DATA описываем структуру нашего будущего отчета.

Тест программы:

REPORT  ztd_journal.

TYPE-POOLS: slis.

TABLES: vbrk, likp.

SELECT-OPTIONS:
 fkdat FOR vbrk-fkdat,
 vkorg FOR vbrk-vkorg,
 vstel FOR likp-vstel,
 kunag FOR vbrk-kunag.


TYPES:  BEGIN OF t_journal,
  kunag TYPE vbrk-kunag,
  name1 TYPE kna1-name1,
  ort01 TYPE kna1-ort01,
  vbeln TYPE vbrk-vbeln,
  vbelv TYPE vbfa-vbelv,
  fkdat TYPE vbrk-fkdat,
  netwr TYPE vbrk-netwr,
  mwsbk TYPE vbrk-mwsbk,
  vstel TYPE likp-vstel,
  zz_fctor TYPE likp-zz_fctor,

  END OF t_journal.

DATA: journal TYPE TABLE OF t_journal WITH HEADER LINE,
      wa_journal TYPE t_journal.

При запуске программы появится начальный экран с параметрами отчета (Рис.1)

Рис .1. Начальный экран отчета

Шаг 2. На этом шаге через оператор SELECT и SELECT SINGLE делаем выборку из таблиц базы данных. Предполагается, что разработчик знает таблицы, из которых нужно брать данные

Текст созданного запроса:

SELECT vbeln fkdat kunag netwr mwsbk FROM vbrk INTO CORRESPONDING FIELDS OF wa_journal WHERE fkdat IN fkdat AND vkorg IN vkorg AND kunag IN kunag AND fksto = '' AND sfakn = ''.
  SELECT SINGLE vbelv FROM vbfa INTO wa_journal-vbelv WHERE vbeln = wa_journal-vbeln AND vbtyp_v = 'J'.
  SELECT SINGLE vstel  FROM likp INTO wa_journal-vstel WHERE vbeln = wa_journal-vbelv AND vstel IN vstel.
  SELECT SINGLE name1 ort01 FROM kna1 INTO (wa_journal-name1, wa_journal-ort01) WHERE kunnr = wa_journal-kunag.
  wa_journal-netwr = wa_journal-netwr + wa_journal-mwsbk.
  APPEND wa_journal TO journal.
ENDSELECT.

SORT journal BY fkdat kunag.

В результате работы запроса в табличке VBRK «увидим» неотсторнированные фактуры, в табличке VBFA по потоку документов ищем номер накладной, в табличке LIKP ищем пункт отгрузки, а в табличке KNA1 информацию о клиенте.
 

Шаг 3. На третьем шаге описываем названия колонок в конечном отчете, а также настраиваем переход в другой отчет.

PERFORM call_alv.

*&---------------------------------------------------------------------*
*&    Form  call_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM call_alv.

  DATA: ifc TYPE slis_t_fieldcat_alv.
  DATA: xfc TYPE slis_fieldcat_alv.
  DATA: repid TYPE sy-repid.

  repid = sy-repid.

  CLEAR xfc. REFRESH ifc.

  CLEAR xfc.
  xfc-reptext_ddic = ‘Покупатель’.
  xfc-fieldname    = ‘KUNAG’.
  xfc-tabname      = ‘JOURNAL’.
  xfc-outputlen    = ‘15’.
  APPEND xfc TO ifc.

  CLEAR xfc.
  xfc-reptext_ddic = ‘Наименование’.
  xfc-fieldname    = ‘NAME1’.
  xfc-tabname      = ‘JOURNAL’.
  xfc-outputlen    = ‘45’.
  APPEND xfc TO ifc.

  CLEAR xfc.
  xfc-reptext_ddic = ‘Город’.
  xfc-fieldname    = ‘ORT01’.
  xfc-tabname      = ‘JOURNAL’.
  xfc-outputlen    = ‘25’.

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев30

Комментарий от  

Олег Башкатов

  |  10 сентября 2013, 00:45

от HEADER LINE нужно уходить.
так советует Karl-Heinz Kühnhauser и Thorsten Franz  в своих книгах.
 
вот пример двухуровневого ALV
 
wiki.scn.sap.com/wiki/display

Комментарий от  

Сергей Косяченко

  |  10 сентября 2013, 11:07

1. Создаем структуру под поля экрана выборки.
2. Создаем структуру под вывод данных
3. Делаем выборку данных. Без всяких вложенных селектов и селект/енд_селект.
4. Выводим alv. Если только для просмотра, то:
      cl_salv_table=>factory(
        IMPORTING
          r_salv_table = lr_salv_table
        CHANGING
          t_table = lt_alv ).
      
      lr_salv_table->display( ).

Комментарий от  

Сергей Косяченко

  |  10 сентября 2013, 11:08

от HEADER LINE нужно уходить.
так советует Karl-Heinz Kühnhauser и Thorsten Franz  в своих книгах.
 
вот пример двухуровневого ALV
 
wiki.scn.sap.com/wiki/display

То есть HEADER LINE - это самое страшное, что здесь продемонстрировано?

Комментарий от  

Олег Башкатов

  |  10 сентября 2013, 11:46

То есть HEADER LINE - это самое страшное, что здесь продемонстрировано?

согласен.
ENDSELECT как-то опустил из виду.
 
Что Вы хотите, чтобы я переписывал коды с одного портала на другой?))
ссылку, где можно найти кусочки кода я привел; там есть в том числе и пример с классом cl_salv_table.

Комментарий от  

Сергей Косяченко

  |  10 сентября 2013, 13:09

согласен.
ENDSELECT как-то опустил из виду.
 
Что Вы хотите, чтобы я переписывал коды с одного портала на другой?))
ссылку, где можно найти кусочки кода я привел; там есть в том числе и пример с классом cl_salv_table.

ФМ или класс не суть важно. Кому как нравится. Но вот выборки, да и заполнение хардкодом выходной структуры...Хотя, лишь бы работало. Просто, утомительно все это на саппорте разгребать. После таких примеров...

Комментарий от  

Николай Кронский

  |  10 сентября 2013, 15:06

Печалька... О чем эта статья, на кого она расчитана? Возможно, это попытка человека, далекого от разработки, показать, что "я тоже могу"?
Любой отчет подпадает под шаги:
1) задать параметры выбора;
2) выбрать данные;
3) показать данные;
4) обработать данные (опционально).
Однако, тонкости неисчислимы:
Где красивый читабельный код, соответствующий хоть каким-то нормам наименования?
Где проверка полномочий?
Где возможность использования разработки в мультиязычной среде?
Где оптимальный код, который все еще будет отрабатывать в обозримый интервал времени на базах более десятка терабайт?
Где возможности расширения отчета без дополнительного кодирования в нескольких местах программы, например, при желании вытащить еще хотя бы одно значение?
Где ...?
Статья, к сожалению, напоминает отрывок из книги "АВАР за 5 дней". Наверное, для решения задачи "на коленке" имеет смысл обратиться к инструменту попроще, чем АВАР? Например, QuickViewer?
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
 
P.S.: Заранее приношу извинения за некоторую резкость суждения.

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 17:39

Печалька... О чем эта статья, на кого она расчитана? Возможно, это попытка человека, далекого от разработки, показать, что "я тоже могу"?
Любой отчет подпадает под шаги:
1) задать параметры выбора;
2) выбрать данные;
3) показать данные;
4) обработать данные (опционально).
Однако, тонкости неисчислимы:
Где красивый читабельный код, соответствующий хоть каким-то нормам наименования?
Где проверка полномочий?
Где возможность использования разработки в мультиязычной среде?
Где оптимальный код, который все еще будет отрабатывать в обозримый интервал времени на базах более десятка терабайт?
Где возможности расширения отчета без дополнительного кодирования в нескольких местах программы, например, при желании вытащить еще хотя бы одно значение?
Где ...?
Статья, к сожалению, напоминает отрывок из книги "АВАР за 5 дней". Наверное, для решения задачи "на коленке" имеет смысл обратиться к инструменту попроще, чем АВАР? Например, QuickViewer?
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
 
P.S.: Заранее приношу извинения за некоторую резкость суждения.

Ну как бы внизу статьи уже все написано:
 
Белобродский Андрей Андреевич, к.э.н., руководитель отдела автоматизации ЗАО «АВС Фарбен», член Пользовательского Экспертного Совета SAP, автор статей по настройке и использованию SAP.
 

А в профиле есть уточнения:
 
Должность: Руководитель отдела автоматизации бизнес процессов
Стаж работы с SAP: 7 лет
Реализовано проектов SAP: Siemens Enterprise Networks, Nokia Siemens Networks, Siemens Healthcare, L'Oreal, Myllycoski, ABC Farben

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 17:44

Ну как бы внизу статьи уже все написано:
 
Белобродский Андрей Андреевич, к.э.н., руководитель отдела автоматизации ЗАО «АВС Фарбен», член Пользовательского Экспертного Совета SAP, автор статей по настройке и использованию SAP.
 

А в профиле есть уточнения:
 
Должность: Руководитель отдела автоматизации бизнес процессов
Стаж работы с SAP: 7 лет
Реализовано проектов SAP: Siemens Enterprise Networks, Nokia Siemens Networks, Siemens Healthcare, L'Oreal, Myllycoski, ABC Farben

Хотя каюсь, сам вот это вот:
 
CLEAR xfc.
  xfc-reptext_ddic = ‘Сумма с НДС’.
  xfc-fieldname    = ‘NETWR’.
  xfc-tabname      = ‘JOURNAL’.
  xfc-outputlen    = ‘15’.
  APPEND xfc TO ifc.
 
часто предпочитаю использованию какого-нить REUSE_ALV_FIELDCATALOG_MERGE или чего позабористее.

Комментарий от  

Олег Башкатов

  |  10 сентября 2013, 21:55

ФМ или класс не суть важно. Кому как нравится. Но вот выборки, да и заполнение хардкодом выходной структуры...Хотя, лишь бы работало. Просто, утомительно все это на саппорте разгребать. После таких примеров...

а вот тут ошибаетесь, на мой взгляд)))
объектный подход предпочтительней, ибо память лучше использует

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 22:08

а вот тут ошибаетесь, на мой взгляд)))
объектный подход предпочтительней, ибо память лучше использует

Олег, я вам уже говорил, куда повесить свой глазок и что прежде чем что либо утверждать, определенное на ваш глазок, а особенно про память, желательно воспользоваться специальными средствами анализа, а потом уже с приведенным цифрами утверждать что ибо... а ибо не надо говорить о том, о чем имеете весьма смутное представление.
 
PS: Вот же обещал себе, не комментировать вас... но извините не удержался.

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 22:19

Печалька... О чем эта статья, на кого она расчитана? Возможно, это попытка человека, далекого от разработки, показать, что "я тоже могу"?
Любой отчет подпадает под шаги:
1) задать параметры выбора;
2) выбрать данные;
3) показать данные;
4) обработать данные (опционально).
Однако, тонкости неисчислимы:
Где красивый читабельный код, соответствующий хоть каким-то нормам наименования?
Где проверка полномочий?
Где возможность использования разработки в мультиязычной среде?
Где оптимальный код, который все еще будет отрабатывать в обозримый интервал времени на базах более десятка терабайт?
Где возможности расширения отчета без дополнительного кодирования в нескольких местах программы, например, при желании вытащить еще хотя бы одно значение?
Где ...?
Статья, к сожалению, напоминает отрывок из книги "АВАР за 5 дней". Наверное, для решения задачи "на коленке" имеет смысл обратиться к инструменту попроще, чем АВАР? Например, QuickViewer?
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
 
P.S.: Заранее приношу извинения за некоторую резкость суждения.

===
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
===
Пока ехал тут с работы, подумал, что на самом деле дискредитирует не эта статья. Андрей Белобродский не является сотрудником компании SAP и пишет в своей системе, на что имеет полное право. А вот что именно дискредитирует, так это люди которые пишут, то что называется решением для страны России или в Украине аддоном, вот это точно полная дискредитация, когда человек для проверки уникальности записей во внутренней таблице, созданной со ссылкой на структуру словаря данных с 83 кажется полями, не находит ничего лучше, чем создать создать для этой таблицы первичный ключ с перечислением всех этих полей. А потом когда другой разработчик добавляет в таблицу словаря новое поле, программа этого первого наивного чукотского мальчика начинает при определенных значениях валиться в дамп, при этом чтобы добиться исправления этой ошибки надо потратить месяц переписки.. а исправляется все это, да именно добавлением этих полей в первичный ключ... ну гениально решение. Или написание проверки в условии WHERE, для операции BETWEEN с условием <переменная> BETWEEN <верхняя граница>  AND <нижняя граница> и даже не удивляться что эта конструкция всегда возвращает sy-subrc = 4.
 
А ты потом открываешь этот абаповский код компании SAP и понимаешь, что в принципе у других все не так уже и плохо в этой жизни, солнышко светит, подумаешь: - "Где проверка полномочий?" Да какая проверка, оно хоть работает, в отличии от того кода, который в принципе никогда не работает...

Комментарий от  

Александр Дублин

  |  10 сентября 2013, 22:39

от HEADER LINE нужно уходить.
так советует Karl-Heinz Kühnhauser и Thorsten Franz  в своих книгах.
 
вот пример двухуровневого ALV
 
wiki.scn.sap.com/wiki/display

Олег, может лучше на книгу ссылку дать. И людям приятнее будет и порталу продажи повысишь :-)

Комментарий от  

Олег Башкатов

  |  10 сентября 2013, 22:43

Олег, я вам уже говорил, куда повесить свой глазок и что прежде чем что либо утверждать, определенное на ваш глазок, а особенно про память, желательно воспользоваться специальными средствами анализа, а потом уже с приведенным цифрами утверждать что ибо... а ибо не надо говорить о том, о чем имеете весьма смутное представление.
 
PS: Вот же обещал себе, не комментировать вас... но извините не удержался.

опять сочувствую Вам.
 
Вы еще и про объекты не имеете представления.
лучше бы читали книги реальных авторов, а не писали всякую ...
ну вообщем Вы поняли.
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 

у уважаемых авторов в книгах про ABAP всегда есть место про объектный подход, а вот у Вас нет ни слова. но это оптимизация в вашем стиле.
 
открою Вам секрет: объектный подход всегда быстрее (и не только в ABAP).
 
а п.лить (простите, говорить), Вы можете сколько угодно - других признаков жизни у Вас не замечено.

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 22:46

опять сочувствую Вам.
 
Вы еще и про объекты не имеете представления.
лучше бы читали книги реальных авторов, а не писали всякую ...
ну вообщем Вы поняли.
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 

у уважаемых авторов в книгах про ABAP всегда есть место про объектный подход, а вот у Вас нет ни слова. но это оптимизация в вашем стиле.
 
открою Вам секрет: объектный подход всегда быстрее (и не только в ABAP).
 
а п.лить (простите, говорить), Вы можете сколько угодно - других признаков жизни у Вас не замечено.

Спасибо... что раскрыли про быстроту объектного кода над процедурным, не буду вас дальше расстраивать...

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 22:47

Олег, может лучше на книгу ссылку дать. И людям приятнее будет и порталу продажи повысишь :-)

Александр, не буду... так как вот к примеру Олег Башкатов, он этих устриц не ел, но сразу установил, что я там всякую х..ю написал, так зачем же :-)

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 22:51

опять сочувствую Вам.
 
Вы еще и про объекты не имеете представления.
лучше бы читали книги реальных авторов, а не писали всякую ...
ну вообщем Вы поняли.
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 

у уважаемых авторов в книгах про ABAP всегда есть место про объектный подход, а вот у Вас нет ни слова. но это оптимизация в вашем стиле.
 
открою Вам секрет: объектный подход всегда быстрее (и не только в ABAP).
 
а п.лить (простите, говорить), Вы можете сколько угодно - других признаков жизни у Вас не замечено.

Кстати, вы там в Москве к SAP-у поближе, будете на Космодамианской набережной, зайдете в учебный центр SAP, передайте эти же слова Василию Ковальскому, а то я х... написал, он ее рецензировал... в общем все вокруг у вас ... один вы похоже на белом коне и с оркестром.
 
PS: Иногда лучше жевать.. чем что то писать.

Комментарий от  

Александр Дублин

  |  10 сентября 2013, 23:03

опять сочувствую Вам.
 
Вы еще и про объекты не имеете представления.
лучше бы читали книги реальных авторов, а не писали всякую ...
ну вообщем Вы поняли.
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 

у уважаемых авторов в книгах про ABAP всегда есть место про объектный подход, а вот у Вас нет ни слова. но это оптимизация в вашем стиле.
 
открою Вам секрет: объектный подход всегда быстрее (и не только в ABAP).
 
а п.лить (простите, говорить), Вы можете сколько угодно - других признаков жизни у Вас не замечено.

Олег, "за базар надо отвечать" :-)
 
Предлагаю взять примеры из книги Олега, для ЭТИХ примеров провести замеры без "объектного подхода" и с "объектным подходом". Результаты оформить в виде статьи.
 
И тебе "уважуха" после этого будет и людям польза.

Комментарий от  

Олег Точенюк

  |  10 сентября 2013, 23:08

Олег, "за базар надо отвечать" :-)
 
Предлагаю взять примеры из книги Олега, для ЭТИХ примеров провести замеры без "объектного подхода" и с "объектным подходом". Результаты оформить в виде статьи.
 
И тебе "уважуха" после этого будет и людям польза.

Ну зачем же из книги, там же х..я написана, зачем же читать всякую ерунду, да светлую голову забивать :-)

Комментарий от  

Олег Башкатов

  |  11 сентября 2013, 01:19

Кстати, вы там в Москве к SAP-у поближе, будете на Космодамианской набережной, зайдете в учебный центр SAP, передайте эти же слова Василию Ковальскому, а то я х... написал, он ее рецензировал... в общем все вокруг у вас ... один вы похоже на белом коне и с оркестром.
 
PS: Иногда лучше жевать.. чем что то писать.

Олег Витальевич, прекратите прекрываться третьими лицами.
Это уже как-то даже некрасиво, ибо не 1ый раз.
Вы еще на типографию "скиньте" или на алфавит с буквами.
 
В вашем случае утверждение "Иногда лучше жевать.. чем что то писать." получено на собственном опыте

Комментарий от  

Олег Башкатов

  |  11 сентября 2013, 01:21

Кстати, вы там в Москве к SAP-у поближе, будете на Космодамианской набережной, зайдете в учебный центр SAP, передайте эти же слова Василию Ковальскому, а то я х... написал, он ее рецензировал... в общем все вокруг у вас ... один вы похоже на белом коне и с оркестром.
 
PS: Иногда лучше жевать.. чем что то писать.

Замечу, что слово для своего творения Вы сами подобрали.
вероятно, Вам видней.
 
я Ваш труд так не называл и называть не буду.
Это же все-таки книга...

Комментарий от  

Олег Башкатов

  |  11 сентября 2013, 01:22

Александр, не буду... так как вот к примеру Олег Башкатов, он этих устриц не ел, но сразу установил, что я там всякую х..ю написал, так зачем же :-)

Олег Витальевич, не хочу Вас расстраивать, но Александр имел ввиду авторов полезных книг.
Посмотрите, на подчиненность комментариев.
 
Вот ссылка - выбирайте любую
sapland.ru/books/the-essential-abap-collection.html
 
Судя, по всему Ваш глазок натянут на одно место; поэтому не указывайте, что мне делать с моим.
Сам разберусь.

Комментарий от  

Олег Башкатов

  |  11 сентября 2013, 01:24

Олег, "за базар надо отвечать" :-)
 
Предлагаю взять примеры из книги Олега, для ЭТИХ примеров провести замеры без "объектного подхода" и с "объектным подходом". Результаты оформить в виде статьи.
 
И тебе "уважуха" после этого будет и людям польза.

Если, конечно, Олег Витальевич не против...

Комментарий от  

Олег Точенюк

  |  11 сентября 2013, 10:57

Если, конечно, Олег Витальевич не против...

Бог в помощь и электричка на встречу, только когда будете измерения делать, свой глазок не используйте... а так вперед, кто ж вам что-то запретить может.

Комментарий от  

Олег Точенюк

  |  11 сентября 2013, 11:01

Олег Витальевич, не хочу Вас расстраивать, но Александр имел ввиду авторов полезных книг.
Посмотрите, на подчиненность комментариев.
 
Вот ссылка - выбирайте любую
sapland.ru/books/the-essential-abap-collection.html
 
Судя, по всему Ваш глазок натянут на одно место; поэтому не указывайте, что мне делать с моим.
Сам разберусь.

Дублин я думаю и без вас ответит, что он имел в виду.
 
А вам предлагаю провести рекламную акцию, только сегодня и только сейчас, универсальный измерительный прибор: "Глазок Олег Башкатов", измеряет скорость, массу, объем, теплопроводность и вот те 80 с лишним единиц измерения из справочника T006 системы SAP. Ваш начальник идиот и говорит, что программа работает медленно и не правильно? Купите и примените в ответ, что на "Глазок Олега Башкатов-а" все работает замечательно и быстро. Используются нанотехнологии и наноглазологии.

Комментарий от  

Михаил Сковородин

  |  11 сентября 2013, 11:33

Бог в помощь и электричка на встречу, только когда будете измерения делать, свой глазок не используйте... а так вперед, кто ж вам что-то запретить может.

Олег и Олег,
 
При всем уважении, перепалка с переходом на личности, нисколько не красит. Просьба перевести обсуждение в конструктивное русло.
 
Каждый может иметь свое мнение. Каждый может ошибаться.  Аргументы, контраргументы, ... Такая "дуэль" гораздо интересней, полезней и красивей.

Комментарий от  

Олег Точенюк

  |  11 сентября 2013, 12:40

Олег и Олег,
 
При всем уважении, перепалка с переходом на личности, нисколько не красит. Просьба перевести обсуждение в конструктивное русло.
 
Каждый может иметь свое мнение. Каждый может ошибаться.  Аргументы, контраргументы, ... Такая "дуэль" гораздо интересней, полезней и красивей.

Так а я то - что, я только за, подождем сертификат соответствия на измерительный прибора "глазок ...", потом сделаем замеры и посмотрим кому к умным, а кому к красивым :-)
 
PS: Да далее, молчу, молчу и еще раз молчу :-)

Комментарий от  

Андрей Белобродский

  |  11 сентября 2013, 14:26

===
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
===
Пока ехал тут с работы, подумал, что на самом деле дискредитирует не эта статья. Андрей Белобродский не является сотрудником компании SAP и пишет в своей системе, на что имеет полное право. А вот что именно дискредитирует, так это люди которые пишут, то что называется решением для страны России или в Украине аддоном, вот это точно полная дискредитация, когда человек для проверки уникальности записей во внутренней таблице, созданной со ссылкой на структуру словаря данных с 83 кажется полями, не находит ничего лучше, чем создать создать для этой таблицы первичный ключ с перечислением всех этих полей. А потом когда другой разработчик добавляет в таблицу словаря новое поле, программа этого первого наивного чукотского мальчика начинает при определенных значениях валиться в дамп, при этом чтобы добиться исправления этой ошибки надо потратить месяц переписки.. а исправляется все это, да именно добавлением этих полей в первичный ключ... ну гениально решение. Или написание проверки в условии WHERE, для операции BETWEEN с условием <переменная> BETWEEN <верхняя граница>  AND <нижняя граница> и даже не удивляться что эта конструкция всегда возвращает sy-subrc = 4.
 
А ты потом открываешь этот абаповский код компании SAP и понимаешь, что в принципе у других все не так уже и плохо в этой жизни, солнышко светит, подумаешь: - "Где проверка полномочий?" Да какая проверка, оно хоть работает, в отличии от того кода, который в принципе никогда не работает...

Большое спасибо за подробные и полезные комментарии. Данная статья не предназначена для программистов, а для специалистов с полномочиями на ABAP, которых уже не устраивает инструмент SAP Query, который я описывал здесь sapland.ru/articles/stats
 
Так как сам не программист, с удовольствием прочитаю здесь статью с красивым кодом как получить отчет, в котором для пункта отгрузки на дату показывались номера накладной и счета фактуры ):

Комментарий от  

Андрей Белобродский

  |  11 сентября 2013, 14:35

Печалька... О чем эта статья, на кого она расчитана? Возможно, это попытка человека, далекого от разработки, показать, что "я тоже могу"?
Любой отчет подпадает под шаги:
1) задать параметры выбора;
2) выбрать данные;
3) показать данные;
4) обработать данные (опционально).
Однако, тонкости неисчислимы:
Где красивый читабельный код, соответствующий хоть каким-то нормам наименования?
Где проверка полномочий?
Где возможность использования разработки в мультиязычной среде?
Где оптимальный код, который все еще будет отрабатывать в обозримый интервал времени на базах более десятка терабайт?
Где возможности расширения отчета без дополнительного кодирования в нескольких местах программы, например, при желании вытащить еще хотя бы одно значение?
Где ...?
Статья, к сожалению, напоминает отрывок из книги "АВАР за 5 дней". Наверное, для решения задачи "на коленке" имеет смысл обратиться к инструменту попроще, чем АВАР? Например, QuickViewer?
Субъективно, статья воспринимается как дискредитация деятельности людей, занимающихся разработкой на АВАР профессионально.
 
P.S.: Заранее приношу извинения за некоторую резкость суждения.

Да, Николай действительно мы целый год пользовались Quick Viewer, но в отчет попадали данные только если в поставке была позиция с номером 10. Пришлось по интернету смотреть как сделать отчет в ABAP ALV.

Комментарий от  

Олег Башкатов

  |  08 декабря 2014, 23:48

В некоторых комментариях позволил себе нелестно отозваться о книге
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 
Посетив мастер-класс и прочитав эту книгу год назад, понял что был неправ.
 
Однако, используя инфу в этой книге, а также подход по анализу кода (назову его "код в студию ... и запускаем по F8"), удалось даже сдать успешно сертификат C_TAW12_731 (training.sap.com/shop/certification)
 
Так сказать, пришло время взять слова обратно и извиниться ))) и написать новые)))
 
Олег, спасибо тебе за книгу. Мне она помогла.

Комментарий от  

Пётр Ромащенко

  |  17 августа 2016, 12:22

В некоторых комментариях позволил себе нелестно отозваться о книге
 
sapland.ru/books/rekomendatsii-po-optimizatsii-programm-na-yazike-abap.html
 
Посетив мастер-класс и прочитав эту книгу год назад, понял что был неправ.
 
Однако, используя инфу в этой книге, а также подход по анализу кода (назову его "код в студию ... и запускаем по F8"), удалось даже сдать успешно сертификат C_TAW12_731 (training.sap.com/shop/certification)
 
Так сказать, пришло время взять слова обратно и извиниться ))) и написать новые)))
 
Олег, спасибо тебе за книгу. Мне она помогла.

Надо же, какой хеппи-энд симпатичный... Чин-чин, Олег и Олег :-)