Новости в 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, то всё может оказаться гораздо проще.

(далее…)

Конференции и трансляция рабочего стола в локальную сеть

За последнюю пару дней исследовал, что есть из программного обеспечения для условного “кабинета обучения” или “кабинета презентации”.

Задача простая: транслировать в локальную сеть (без web-функций хотя бы) с машины выступающего рабочий стол на ближайшие компьютеры, давать доступ к нужным файлам, передавать управление на “слушающего”.

В старых Windows до Vista есть одна встроенная приблуда – NetMeeting. В новой Висте появилась замена – “Конференц-зал”. Но в семёрке её уже нет.

Мелкософт занимается тусовкой функций по своим программам, и как я понимаю возможность конференций засунули подальше и за деньги – “Microsoft Office Live Meeting”. Просто так пробник не попробуешь.

Я так посмотрел – “Конференц-зал Windows” делает ровно то, что нужно. Однако политика Майкрософта в данном случае пахнет жлобством. Именно жлобством.

Предлагают ещё одно решение – “Microsoft SharedView”. Вроде как бесплатное, но функционально не сильно напоминающее “Конференц-зал”. Во-первых, юзеров загоняют в сервисы LiveID. Во-вторых, не сильно понятно, как будет ходить трафик, если все подсоединившиеся “зрители” находятся внутри той же локальной сети. Подозреваю, что будет ходить плохо.

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

PS.

Денежное наступление Майкрософта продолжается. В Скайпе функция “Демонстрация экрана” теперь просит денег в виде “Премиум-аккаунта”.

PPS.

Показ рекламы в Скайпе я как-то раз видел, пока находился в другом регионе.

PPPS.

И вот пишут:

Microsoft Office Live Meeting is a discontinued commercial subscription-based web conferencing service operated by Microsoft. Live Meeting included software installed on client PCs and used a central server for all clients to connect to. Microsoft now produces Microsoft Lync Server which is an enterprise conferencing server product.

Так что привыкать некогда.

PPPPS.

Прошло 14 лет. Уже все привыкли к Zoom и Teams (который и есть тот самый Lync), привыкли к наличию интернета везде.