Pull to refresh

Басня об «одном флаконе»

Reading time 2 min
Views 1.8K
Lumber room IT-companies
Еще раз приглашаю всех интересующихся на мой блог. Для обсуждения темы поста или связанных вопросов можно использовать анонимные комментарии. А пока — анонс новой статьи:

Здесь я хочу поговорить о культуре программирования на SAP-проектах. Изначально я планировал включить этот кусок в качестве небольшого лирического отступления к одному из своих ПОЧЕМУ (см. вступление к одному из первых моих постов). Но, как водится, сказать нашлось много чего.
Читать дальше →
Total votes 5: ↑1 and ↓4 -3
Comments 0

Безопасность SAP в цифрах

Reading time 19 min
Views 19K
Digital Security corporate blog ERP-systems *
Примечания

Согласно партнерскому соглашению с SAP, мы не имеем право публиковать подробную информацию о найденных уязвимостях до выпуска патча. Поэтому в данном отчете подробно описаны только те уязвимости, информацию о которых мы имеем право раскрывать на данный момент. Однако примеры эксплуатации всех упомянутых уязвимостей, доказывающие, что они действительно существуют, можно найти на видеозаписях с конференций, а также на erpscan.ru и dsec.ru.

Также необходимо отметить, что наши исследования в области безопасности SAP вообще и сбора статистики в частности не заканчиваются на данном отчете. Мы планируем публиковать новые статистические данные как минимум ежегодно либо по мере появления новых методов атаки. Последние обновления статистики SAP-систем, присутствующих в Интернете, можно найти на sapscan.com.

1. Введение

Ядро каждой крупной компании – это ERP-система; в ней проходят все критичные для бизнеса процессы, начиная от закупки, оплаты и доставки и заканчивая управлением человеческими ресурсами, продуктами и финансовым планированием. Вся информация, хранящаяся в ERP-cистемах, имеет огромное значение, и любой неправомерный доступ к ней может понести за собой громадные потери вплоть до остановки бизнеса. Согласно отчету Ассоциации специалистов по расследованию хищений/мошенничества (ACFE), в период с 2006 по 2010 годы потери организаций от внутреннего фрода составили порядка 7 процентов от ежегодной выручки (!). Вот почему мы решили провести детальное исследование в области безопасности SAP с использованием ERPScan – разработанной Digital Security системы мониторинга защищенности SAP-систем.

Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Comments 7

SAPокалипсис. BlackHat. Взлом J2EE. Кошмар, кошмар

Reading time 7 min
Views 12K
Digital Security corporate blog Information Security *
Всем привет! Тут многие просили нас писать больше; собственно, выкроив времечко между перелётами, я вспомнил про парочку старых уязвимостей в… впрочем, вы уже догадались в чём.

Прошло уже немало времени с момента первой публикации информации о данных багах. А точнее, целый год. Ровно год назад я ездил на BlackHat с докладом по теме безопасности J2EE движка SAP. Почему бы и не поведать о той баге, тем более что до сих пор не дошли руки подробно описать в рунете всё, что было представлено на BlackHat, ну не считая небольшого видео с ZeroNights, где вышло довольно сумбурно.

Исследование посвящалось платформе SAP NetWeaver J2EE Engine, о которой по сравнению с ABAP Engine существует крайне мало информации, а по ее безопасности практически не было исследований во всём мире. А ведь Digital Security Research Group хлебом не корми, только дай разломать что-нибудь, куда ещё никто не совался. В общем, сперва будет немножко общих слов о том, что такое SAP и как это важно для бизнеса, так что циники могут пролистать вниз – к кускам кода, ну а все остальные могут читать дальше.

Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 11

Загрузка курсов валют в систему R/3 средствами ABAP

Reading time 4 min
Views 3.3K
ERP-systems *
Sandbox
Работаю я ABAP-программистом на одном весьма крупном промышленном пред-приятии. Занимаюсь в основном поддержкой и сопровождением, потому в работе часто бывают затишья. Решил написать статью про ABAP.

Когда устраивался на работу R/3 я уже видел и кое-что умел делать. ABAP/4 мы изучали в институте. Показали основной синтаксис, да пару программ написали простеньких.

Первую неделю на работе я читал книжку по ABAP и скучал откровенно. По про-шествии некоторого времени, мне, наконец-то, дали задание.

Кому интересно добро пожаловать.
Читать дальше →
Total votes 10: ↑6 and ↓4 +2
Comments 11

Введение в ABAP

Reading time 4 min
Views 135K
Programming *
Sandbox
Привет, Хабр!

Так как статей об ABAP'е на хабре совсем мало, а статьи вида «Hello, World!» совсем нету, решил немного написать об этом. Если вам интересно узнать про этот язык или же подумываете заниматься разработкой на ABAP'е, то добро пожаловать под кат.
Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Comments 16

Подробный мануал «Как создать инфо-тип PA в SAP HR» или «Как приручить SAP?» (часть 1)

Reading time 5 min
Views 22K
IT-companies
Tutorial
Sandbox
imageSAP – довольно распространенная система на крупных предприятиях не только запада, но и стран постсоветского пространства. Существует много сплетен и обсуждений, как позитивных, так и негативных по поводу SAP. И негативные отзывы связаны в основном, не столько со сложностью системы, сколько с интуитивно не понятным интерфейсом и отсутствием доступной литературы (книг, инструкций) на понятном русском языке.

Этой статьей я хочу дать начало доступным инструкциям по некоторым аспектам SAP, с которыми часто возникают проблемы у начинающих SAP’ёров. Данная статья будет посвящена созданию инфо-типов администрирования персонала (PA) для модуля SAP HR. Если данная инструкция Вам понравится и будет полезна, дорогой читатель, то, надеюсь, она будет не последней.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Comments 5

Копание в данных SAP

Reading time 17 min
Views 5.2K
ERP-systems *
В качестве промо-довеска к ранее опубликованной статье приложу немного опыта и исходного кода для специфической аудитории, а именно пользователей SAP. Однажды мне пришлось полгода позаниматься изучением и программированием в этой чудесной системе, а точнее в модуле CRM. Поскольку, с одной стороны, средства для броузинга данных в SAP крайне скудны, а, с другой, я был избалован собственными привычками делать все мышкой, однажды от скуки я занялся любимым делом — «Свободой выборки», но в ABAP & light версии.
В это место имеет смысл проваливаться только SAPерам
Total votes 7: ↑1 and ↓6 -5
Comments 8

Программная генерация PDF форм на ABAP или как избавиться от проблем со SPOOL

Reading time 4 min
Views 17K
ERP-systems *
Sandbox

С чего все началось


Специфика компании, в которой я работаю, подразумевает тесный контакт и сотрудничество с нашими клиентами. Одним из таких бизнес-процессов является рассылка различной документации как по почте, так и на бумажных носителях по наше не любимой почте в конвертах. Стандартный функционал, который позволяет генерировать печатные формы PDF и выводить их на печать или публиковать куда-либо в бинарном виде использует фоновые задачи и SPOOL данных печати.
Поначалу все было прекрасно, данные формировались, клиенты были довольны. Но в один момент все накрылось «медным тазом», объемы генерируемых печатных форм значительно выросли, SPOOL стал сильно «засераться», что приводило к жутким тормозам всей серверной части. Об одном из способов решения этой проблемы я и хочу рассказать в данной статье.
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Comments 2

SAP ABAP: Crossing Checkpoint Charlie in a SAAB (перевод статьи c scn.sap.com)

Reading time 4 min
Views 7.8K
ERP-systems *
Tutorial
Sandbox
Добрый день, уважаемые хаброжители!
Как ABAP-разработчику, мне хочется внести свой вклад в повышение качества пользовательских SAP-программ. С этой целью хочу опубликовать цикл переводов статей об интересных и главное полезных и не очень распространённых техниках из базы знаний SAP (SAP community network).
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 11

SAP ABAP: Understanding «Checkpoint Group» (перевод статьи c saptechnical.com)

Reading time 4 min
Views 10K
Website development *Debugging *
Tutorial
Translation
Дисклеймер
Продолжаю публиковать статьи/переводы относящиеся к нераспространённым и редко используемым техникам SAP ABAP разработки. Ключевые понятия достаточно тяжело переводить на русский язык, различные интерпретации создают путаницу, поэтому привожу их на английском языке. Данный пост частично пересекается с прошлым, но несёт в себе более детальное описание понятия Checkpoint Group


Введение в «Checkpoint Group»


Понятие и реализация «Сheckpoint Group» изначально появились в SAP Web Application Server (SAP WebAS) 6.20 и целиком относятся к области контроля правильности и возможности отслеживания переменных. При грамотном применении, технология облегчает работу по отладке и повышает качество ABAP кода.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 1

XSLT преобразование внутренней таблицы в ABAP, имеющей поле типа «generic reference»

Reading time 13 min
Views 22K
ERP-systems *
Tutorial
Sandbox

Пролог


О чем заметка? Как из внутренней таблицы, строка которой содержит ссылку на неизвестный (обобщенный) тип (REF TO DATA), которая, по факту, хранит ссылку на такую же таблицу, получить XML заданного формата. При этом, число уровней вложенности изначально неизвестно.
Зачем это нужно? Мне это понадобилось при выгрузке данных в различные форматы XML-файлов MS Office без использования OLE.
Для кого эта заметка? Для программистов на ABAP.
Необходимый уровень знания: знать, что такое reference type, generic type, XML; слышать, что существует такая вещь как XSLT.
Приступим?
Total votes 13: ↑12 and ↓1 +11
Comments 1

Ещё один логгер для SAP

Reading time 4 min
Views 21K
Website development *Debugging *
Sandbox
Каждый программист в своей жизни должен хотя бы раз написать свой собственный логгер.
Народное изречение
Сегодня мне хотелось бы рассказать, как использовать журнал приложений в своих разработках, а ещё предложить сообществу очередной велосипед, призванный сделать жизнь немного комфортнее.

Итак, Application Log, также известный как SLG0 и SLG1
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Comments 0

Безопасная ABAP-разработка в SAP

Reading time 5 min
Views 11K
SAP corporate blog Information Security *Website development *
Сегодня на 2014 год, российские компании, внедрившие продукты компании SAP потратили большое количество ресурсов на клиентскую доработку решений. Однако не привносят ли эти разработки дополнительные риски в ваши бизнес-процессы? Компания SAP гарантирует качество кода в своих приложениях благодаря ручному аудиту поставляемого кода и использованию самых современных механизмов статического и динамического анализа своих продуктов на различные уязвимости. Автор этих строк провел исследование в университете г. Саарбрюккен (Германия) целью которого являлся анализ кодов продуктов SAP (решения по электронной коммерции) самыми современными инструментами статического анализа и убедился в высоком качестве этого кода. Программный код компании SAP проходит ручной и автоматизированный анализ, тысячи специальных тест-кейсов. Клиентский программный код зачастую не может быть так полно проанализирован, особенно, в условиях сжатых сроков проектов, в которых приходится работать. Стоит задуматься о качестве клиентского кода в ваших системах. Важно понимать, что проверка авторизации пользователя (синоним безопасности SAP для многих предприятий) не поможет предотвратить использование такого рода ошибок, т.к. пользователь, использующий ошибки в коде, выходит за рамки полномочий, определенных системным администратором.

Рассмотрим ошибки, которые могут присутствовать в клиентском коде.
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 6

Разработка на ABAP для SAP HANA

Reading time 3 min
Views 24K
SAP corporate blog ERP-systems *
Привет, хабрасообщество!

В данной статье я хотел бы осветить новые подходы к разработке на ABAP, применительно к SAP HANA. Мы рассмотрим новые элементы языка ABAP, которые позволят эффективнее использовать возможности, предоставляемые SAP HANA.

Допустим, у нас есть отчет, написанный на языке ABAP, время работы которого нас не устраивает. Мы хотим оптимизировать работу этого отчета. Основная идея изменения логики работы отчета, заключается в том, что часть логики отчета, которая интенсивно использует данные из СУБД (в нашем случае это SAP HANA), будет делегирована на уровень СУБД.

image
Рис.1. Code to Data pushdown.

Для осуществления этого подхода могут быть использованы следующие конструкции:
  1. Расширенный Open SQL
  2. FOR ALL ENTRIES
  3. ABAP Managed Database Procedures

Читать дальше →
Total votes 22: ↑13 and ↓9 +4
Comments 12

Как устроен ABAP Secure Storage в SAP

Reading time 4 min
Views 9.9K
Digital Security corporate blog ERP-systems *
Этой записью в блог мы начинаем цикл постов о паролях в SAP-системах: о том, как различные пароли хранятся в системе, как защищаются и передаются.
На первый взгляд все просто — хранить пароли нужно в базе данных. Конечно, в случае обычных пользователей так и есть: пароли хранятся в виде хешей в БД. Однако для служебных пользователей SAP-системы не все так просто.
Ввиду сложных архитектурных особенностей ERP-системы, разработчикам из компании SAP приходится использовать различные типы хранилищ для такой критичной информации, как пароли системных пользователей.



Что ж, обсудим, как надежно реализованы эти хранилища и может ли атакующий использовать их недостатки в своих целях.
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 0

Запуск SQL запросов в SAP

Reading time 13 min
Views 29K
Website development *Programming *
Sandbox
При внедрении информационных решений на базе SAP ERP, как правило, разворачиваются три системы:

1. Система разработки.
2. Система тестирования.
3. Система продуктивной эксплуатации.

В процессе разработки программ очень часто возникает необходимость оперативно протестировать SQL-запросы в продуктивной или тестовой системе, так как система разработки обычно содержит минимум данных и их не всегда достаточно. Давайте рассмотрим существующие для этого варианты, оценим их недостатки и в итоге разработаем свой инструмент.
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Comments 8

Создание HANA-приложения с использованием среды разработки Eclipse

Reading time 4 min
Views 20K
SAP corporate blog Eclipse *Big Data *
Авторы – Баков Рустам, Дмитриева Людмила, Кульнев Дмитрий, Медведев Юрий

Привет, Хабр-сообщество!

В данной статье мы не будем рассказывать, что такое SAP HANA, об этом и так много говорят и пишут, а сразу покажем, как можно «поиграть» с системой и создать простое приложение из серии «Hello World!» с применением среды разработки Eclipse.

Вначале настроим среду разработки Eclipse с необходимыми плагинами. Плагины для работы с SAP HANA существуют для двух версий Eclipse – Luna и Kepler. Если у вас не установлен Eclipse, то скачать его можно по ссылкам:
Luna — www.eclipse.org/luna
Kepler — www.eclipse.org/kepler
В нашем примере мы будем показывать все шаги настройки на примере Eclipse Luna.

image

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 11

Как выучиться на ABAPера?

Reading time 6 min
Views 87K
SAP corporate blog ERP-systems *
Привет, Хабр!

Начну с главного — ABAP-разработчики нужны. А для тех кто сомневается — только за последние полтора месяца на HH появилось свыше 100 вакансий, в том числе от ведущих российских и мировых брендов.

ABAP возник в 80-е годы двадцатого века и продолжает развиваться. За три десятка лет он вобрал в себя множество парадигм программирования — тут и процедурное, и событийно-ориентированное и объектно-ориентированное — все это в рамках структурного программирования в стиле Дэйкстры (с непременными ENDIF, ENDCASE, разными другими ENDЧТОТОТАМ и даже ENDSELECT, непривычным для знатоков SQL). Обилие парадигм значительно расширяет кругозор, но немного усложняет изучение языка.

В принципе, если среди вас есть энтузиасты, они могут учить его и по стандартной документации. Хотя это не так просто: нужно писать свои программы, требуется система, которая встанет не на любое железо и не забываем про лицензии, но самое печальное, что это долго. Документации много, и не от сырости — язык за три десятка лет вобрал в себя многое, а выкинуть старое не легко: есть такая «священная корова» — совместимость версий. Для изучения ABAP SAP была разработана специальная программа курсов, охват тем которой с одной стороны несколько превосходит Академию для консультантов TAW10/TAW20, с другой успешное усвоение достаточно для сертификации Associate development consultant. Какие курсы нужны и зачем? Постараюсь ответить на эти вопросы, кратко опишу, через что и, главное, в каком порядке, придется пройти новичкам, ну и, конечно, готов ответить на вопросы. С вами я — ABAP-тренер, since 1998.
Читать дальше →
Total votes 33: ↑23 and ↓10 +13
Comments 28

[ABAP] Учимся правильно использовать FOR ALL ENTRIES IN

Reading time 5 min
Views 41K
Website development *Programming *SQL *
Tutorial
При разработке отчетов (программ) SAP на языке ABAP для обращения к базе данных используются Open SQL-запросы. Синтаксис очень похож на SQL, но имеются некоторые отличия. Одно из таких отличий – возможность использования конструкции FOR ALL ENTRIES IN. Эта конструкция применяется в SELECT запросах до оператора WHERE. После неё указывается внутренняя таблица с данными, поля которой можно использовать в операторе WHERE в качестве условий выборки.

В этой статье я хочу рассказать о тонкостях работы этой конструкции: что происходит на уровне БД, об оптимизации запросов и о database-hints.
Хочу знать больше о FOR ALL ENTRIES IN
Total votes 6: ↑6 and ↓0 +6
Comments 10

Подход к реализации больших форматированных отчетов в SAP BW

Reading time 7 min
Views 20K
Data visualization *
Sandbox
На проектах внедрения отчетности с использованием хранилища данных SAP BW многим архитекторам и консультантам приходится решать задачи подготовки больших форматированных отчетов: разнообразных ведомостей, выписок и т.п. Такие отчеты обычно характеризуются:

  • Нестандартными относительно инструментов SAP требованиями к форматированию;
  • Фиксированным числом столбцов;
  • Значительным количеством столбцов и строк (соответственно, десятки и десятки тысяч и более);
  • Требованием наличия Excel-представления;
  • Требованием к времени выполнения не более нескольких минут

К сожалению, нередко приходится наблюдать ситуацию, когда архитекторы BW-проектов выбирают стандартный для BW подход реализации таких отчетов. Кратко суть этого подхода изложена ниже.

Консультантом создается рабочая книга BW-BEx, которая содержит один или несколько BW-BEx-отчетов. Отчеты выгружаются на отдельные листы этой книги, которые обычно скрывают от пользователей. Видимым оставляют лишь один лист книги, содержащий целевую форму отчета с необходимым форматированием.

Работа пользователя с таким отчетом выглядит следующим образом:

  • в зависимости от используемого Excel-инструмента SAP BW, пользователь запускает BW-BEx Analyzer или SBOP Analysis for Office, подключается к серверу SAP BW, выбирает из роли рабочую книгу и запускает ее на выполнение.
    Через несколько секунд (иногда – десятка секунд) появляется селекционный экран.
    На экране пользователь выбирает значения параметров. Например, год-месяц, балансовую единицу, группу материала и т.п. Затем нажимает кнопку «выполнить».
  • Теперь настала очередь «поработать» для SAP BW: все BW-BEx-отчеты рабочей книги выполняются последовательно, отчет за отчетом, передавая на рабочие листы Excel свои данные.
  • После получения в Excel данных каждого отчета запускается VBA-макрос. Логика работы макроса такова, что он ничего не делает, пока данные всех отчетов не будут получены на Excel-листы.
  • Когда данные последнего отчета поступили на Excel-лист, VBA-макрос выполняет основную работу по подготовке форматирования отчета.
  • Когда VBA-макрос завершил работу, пользователь может увидеть результат отчета в своем Excel.

У стандартного подхода есть ряд преимуществ: он прост в реализации и им хорошо владеют большинство специалистов на рынке. Но определенные ограничения не позволяют эффективно реализовывать большие отчеты. А неэффективная реализация получается (если вообще получается) очень неудобной в работе, что негативно сказывается на отношении пользователей к проекту внедрения вообще и к SAP BW в частности. Основное ограничение – максимальное количество ячеек (число строк, умноженное на число столбцов) в отчете. Если их число приближается к эмпирическим 750000, то вероятность сбоя из-за нехватки памяти практически 100%. Т.е. отчет из всего 18 колонок и чуть более 40000 строк уже попадает под это ограничение. А ведь лимиты у Excel намного больше.

Чего только не придумывают консультанты, чтобы, оставаясь в рамках стандартного подхода, качественно сделать-таки большой отчет. Но почти всегда ничего не получается. «Почти» означает компромиссы, послабления в требованиях. Бизнес-пользователи либо соглашаются применять более ограничивающие фильтры и отчет возвращает меньше данных, либо ждать выполнения подольше, либо вручную сводить несколько фрагментов отчета в один.

Чтобы все-таки не говорить клиенту «нет, мы не можем этого реализовать при таких требованиях», необходимо для начала сделать правильные выводы из очевидного: каждый инструмент предназначен для своей задачи.
Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 0