Компания SAP выложила в открытый доступ тестовую систему для разработчиков — SAP NetWeaver AS ABAP Developer Edition, скачать которую можно по ссылке.

На SDN доступна подробная инструкция по установке, которая занимает около 20 простых шагов. Информацию о пользователях и паролях в системе, а так же установке лицензии можно найти в другой статье.

Версии компонентов под катом.

Читать далее

sqlcode[1]Все больше в настоящее время SAP систем переходят на новую платформу (СУБД) – HANA (High-Performance Analytic Appliance), в основе которой лежит технология вычислений in-memory с использованием принципа поколоночного хранения данных. Вместе с новой платформой, появляются так же и новые возможности для обработки больших объемов данных и более высокопроизводительных вычислений.

Для ускорения ABAP решений на базе HANA, используется перенос вычислений с уровня сервера приложений (AS ABAP) на сервер СУБД (Code-to-Data). Данную задачу можно решить несколькими способами, одним из которых является использование Native SQL и AMDP как средства его вызова.

В контексте ABAP разработки, под Native SQL понимается язык SQL запросов поддерживаемый текущей или дополнительной СУБД сервера приложений.

В данной статье будут рассмотрены основные моменты использования AMDP.

Читать далее

Начиная с версии ABAP 7.4. нам стала доступна новая технология описания моделей данных в словаре – ABAP CDS (CDS – Core Data Services). Данная технология позволяет описывать модели данных на более продвинутом уровне, нежели это можно было делать стандартными словарными вьюшками. Она так же позволяет оптимизировать работу с данными за счёт вынесения вычислений на уровень СУБД (Code-to-Data), что актуально для HANA.

Кроме ABAP CDS, есть так же отдельная реализация для HANA – HANA CDS. Как понятно из названия, одна реализация используется в ABAP разработке, другая в HANA Native разработке. Horst Keller в своём блоге более подробно рассматривает разницу в обоих реализациях.

ABAP CDS поддерживается сервером приложений ABAP вне зависимости от того, какая СУБД будет им использована, однако некоторые специфические вещи могут и не поддерживаться (В ABAP 7.4. нет поддержки параметров у CDS для всех СУБД, она появилась только с ABAP 7.5. Кроме того, скорость работы  CDS на HANA и Oracle может быть различной).

В статье будет рассмотрена версия ABAP CDS для ABAP 7.4, с некоторыми комментариями относительно ABAP 7.5.

Читать далее

Метафора

 

Представьте, что Вам нужно организовать в городе телефонную связь. Можно протянуть кабеля от каждого жителя к каждому, но такое решение явно имеет недостаток при добавлении нового жителя, т.к. придётся тянуть от него кабель до всех других. Гораздо дешевле создать в городе телефонную станцию, к которой будет подсоединен каждый житель. Для того чтобы позвонить нужно будет связаться со станцией, а далее станция сделает перенаправление к любому подключенному к ней жителю. Телефонная станция в данном контексте является одиночкой, смысл в том, что когда вы говорите «Мне нужна телефонная станция», вам бы отвечали «Вот она, держи», а не «Давай создадим её заново». Одиночка всегда один.

 

Читать далее

Метафора

 

Данный паттерн чем-то напоминает «фабрику», он также служит для создания объектов, однако с немного другим подходом. Представьте, что у вас есть пустой пакет (из-под сока), а вам нужен полный с апельсиновым соком. Вы «говорите» пакету «Хочу пакет апельсинового сока», он в свою очередь создает свою копию и заполняет ее соком, который вы попросили. Немного «сказочный пример», но в программировании часто так и бывает. В данном случае пустой пакет и является «прототипом», и в зависимости от того что вам требуется, он создает на своей основе требуемые вами объекты (пакеты сока). Клонирование не обязательно должно производится на самом «пакете», это может быть и какой-то другой «объект», главное лишь что данный «прототип» позволяет получать его экземпляры.

 

Читать далее

Метафора

 

Метафора данного паттерна явно следует из его названия. Представьте ситуацию, когда на стройке работает прораб (Director) и строители (Builder’ы). Строители умеют выполнять некоторые работы, которые необходимы, например, для кладки стены: положить на фундамент гидроизоляцию, замешать раствор, выложить кладку из кирпича. Однако сам строитель не знает технологического процесса который необходимо выполнить для того чтобы успешно построить стену. Для этого существует прораб, который благодаря своим знаниям и умениям строителя сможет организовать процесс создания стены. Кроме того, в нашем примере может быть ситуация, когда один строитель может строить одну стену, но совсем не понимает, как построить другую. Для этого начальник стройки (клиент) определяет каким строителем снабдить прораба для получения необходимого типа стены. В метафоре важно понимать, что процесс постройки любой стены унифицирован и имеет четко определенные шаги, а уже конкретный строитель знает, как реализовать эти шаги для создания нужного типа стены (продукта), а прораб контролирует выполнение шагов.

 

Читать далее

Назначение

 

Паттерн решает задачу определения некоторого интерфейса по созданию класса, конкретную реализацию которого определяют дочерние классы, реализующие данный интерфейс. В отличие от абстрактной фабрики, фабричный метод оперирует созданием одного единственного объекта, а не семейства.

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

Читать далее