Новости в 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.

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