Кое-что о настройке SPRO (часть 1) – расширение SPRO и добавление собственных таблиц

Да, именно так. хотя SPRO и является основной транзакцией настройки, но и её тоже можно немножко настроить.

В качестве предыстории этой статьи я взял для себя несколько проблем:

Во-первых, в практике внедрения как правило появляются настроечные таблицы, которые нужно периодически вести в транзакции SM30. Для красоты и полноты картины они должны быть видны в транзакции SPRO.

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

В-третьих, иногда мне очень лениво  заходить отдельно в настроечный эталонный мандант. 

Изменяем SPRO своими руками

Для решения первой проблемы нам понадобятся две транзакции:

(далее…)

Новости в ABAP

Вот пробежала ссылочка на днях: http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18115

Очуметь! Не прошло и десяти лет! Наконец-то двадцать первый век наступил !

Особенно в числе прочих порадовала вот эта диаграммка:

ABAP 7.02

То есть: стало больше функций и !!наконец-то!! можно использовать вложенные выражения!

Я когда на язык ABAP переходил с Delphi/Pascal, то долго бился головой об стол, сетуя на ущербность языка и среды разработки. С тех пор появился новый редактор и новый отладчик, а теперь и язык хоть как-то стал ближе.

Раскраска ALV по ячейкам в ‘REUSE_ALV_GRID_DISPLAY’

Стараюсь в написанных мною отчётиках использовать ‘REUSE_ALV_GRID_DISPLAY’ почаще. Текст вызова кочует из программы в программу методом копи-паста. Но вот до раскраски дело обычно не доходило.

Спросил тут у сотрудника, который вроде как что-то недавно делал что-то подобное. А он мне ответил, что там всё так сложно и нетривиально.

Копнул, попробовал и сходу всё заработало. Запишу себе, чтоб не забыть.

В программу понадобилось внести:

1. Прописать в выходной внутренней таблице специальное поле:

data: begin of  it_detail_line.
              …
              data: cellcolors TYPE lvc_t_scol.
data end of it_detail_line .
data: it_detail like it_detail_line OCCURS 0 WITH HEADER LINE.

 

2. Прописать это поле при вызове ALV

alv_layout-coltab_fieldname = ‘CELLCOLORS’.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’

              IS_LAYOUT                = alv_layout

3. Сделать раскраску по собственному условию

loop at it_detail.

Data ls_cellcolor TYPE lvc_s_scol.
clear it_detail-cellcolors.
if it_detail-d_wrbtr < 0.
              ls_cellcolor-fname =  ‘D_WRBTR’.
              ls_cellcolor-color-col = ‘6’ .
              ls_cellcolor-color-inv = ‘0’ .
              ls_cellcolor-color-int = ‘0’ .
              APPEND ls_cellcolor TO it_detail-cellcolors.
endif.


MODIFY it_detail.
endloop.

Запускаю и вижу, что раскрас произошел успешно.

image

Пошёл, пожалуй, стукну сотрудника чем-нибудь тяжёлым…

Багофича в кишках SAP

Использовал тут в одной программке FM ‘FI_ITEMS_MASS_CHANGE’. Вроде как хорошая помогалка. Мне нужно менять только поле BSEG-ZLSPR.

С помощью этого модуля я массово менял бухгалтерские документы с памятными позициями ТАП (созданные из транзакции F-47). Всё вроде почти нормально. Даже прикрутил в выходной форме теперь любимый мной BAL.

Но когда я натравил туда документы платежного требования (из транзакции F-59, код ОГК = P), то изменения не сохранялись, а в сообщениях появилась ошибка:

Данные пакетного ввода для экрана SAPMF05L 0306 отсутствуют.

№ сообщения 00 344

Вот и развалился внутренний пакетный ввод на транзакции FB02.

Стал искать внутри, нашел загвоздку в FM ‘NEXT_DYNPRO_SEARCH’.

В табличке T019 делается выход на запись:

A    K    X        303

Хотя по факту он должен выходить на запись:

A    ‘ ‘    P        306

Если пакетник запускать в отладке в видимом режиме, то видно, что включается именно 306 экран, и никак не 303.

Просто потому, что там кое-что прописано напрямую в коде, а именно все ОГК за исключением оговорённых считаются = ‘X’.

Поискал ноты на этот счёт – не нашел ничего стоящего.

Ну и непонятен подход к глотанию успешного сообщения. Внутри обнаружил код, что если ловится из пакетника сообщение F5 300, то это сообщение глотается, и BAL выглядит куцо. В принципе можно добавить дополнительный код, типа если сообщений ввобще нет, то добавить туда сообщение F5 300.

Книжка на дорожку

Вчера ехал с работы домой на такси. Уже после того как мы тронулись до меня дошло, что вместо обычного радио или обычной музыки до меня из динамиков стал доноситься знакомый голос чтеца. Что-то связанное со степями и упоминаниями имён Язон и Темучин.

Прошло несколько минут. “Прошу прощения, это Гаррисон?” – спросил я. Водитель подтвердил, и пояснил, что это “Конные варвары”. “Не читал такой книжки у него”, ответил я.

И до дома сквозь голос чтеца мило поперекидывались мнениями вокруг и около этого.

Вставка пакетного ввода в SM35

Пока читал всякие документы по программированию, наткнулся в том числе на краткий экскурс в пакетный ввод.

Ещё один из подходов к массовому вводу всякой всячины. Однако он годится только для пакетного ввода и не касается остальных способов, таких как BAPI.

(далее…)

Как нужно переводить Atlassian JIRA

Вот я поставил себе новую версию JIRA 4, к сожалению в плане русского перевода там по прежнему всё плохо. Прочитал сначала официальную страничку касательно перевода: http://confluence.atlassian.com/display/JIRA/Translating+JIRA, но к таким хитрым и сложным способам меня не склонить. Поэтому я стал искать собственные методы.

(далее…)

Выгрузка сложного отчета в Excel

Захотелось мне создать некоторый сложный отчет. Однако если это пробовать это реализовать встроенными в SAP и ABAP средствами, то легко и просто тут ничего не получится. Однако если допустить, что можно такие данные выводить напрямую в Excel, то всё может оказаться гораздо проще.

(далее…)