Abap язык программирования обучение

ABAP Blog

Все о разработке в решениях от SAP

ABAP Blog

Все о разработке в решениях от SAP

Ссылки

Цитаты

Технические навыки — это мастерство сложности, а творчество — мастерство простоты. // E. Zeeman

Новое

Голосование

Что Вы хотели бы увидеть в блоге?

Комментарии

Динамическое программирование в ABAP

На днях довелось прослушать курс BC402 в рамках программы «Вечерний ABAP», хочется выразить благодарность компании SAP за такую возможность, а также отметить профессионализм преподавателя, в роли которого выступал Василий Ковальский. Сам курс посвящен обзору довольно обширных тем, которые, так или иначе, пригодятся всем ABAP программистам в их повседневной деятельности. Одной из рассматриваемых тем данного курса была возможность динамического программирования в ABAP, о которой и хотелось бы поговорить далее.

Ключевой особенностью программного обеспечения является его способность к изменению и приспособлению к меняющимся условиям. Одним из инструментов обеспечивающих такое приспособление является динамическое программирование.

В ABAP под динамическим программированием могут пониматься следующие вещи:

В данной статье будут рассмотрены последние 2 способа, информацию по остальным можно получить из официальной справки, а также из курса BC402.

Для динамического программирования необходимо понять, что такое ссылочные переменные и указатели на поля (field symbols) и в чем их отличия.

Для разработчиков, только начинающих изучение ABAP термин field-symbols часто может вызывать путаницу. Те из них, кто работал с языками C/C++, зачастую путают их с типом указателя (Pointer). Но field-symbols не являются указателями на область памяти, они лишь являются указателями на переменную или объект данных которые являются видимыми в текущем блоке кода (можно использовать термин alias).

Читайте также:  Артемова гаврилова грамматика немецкого языка

На следующем рисунке хорошо видны основные отличия.

У нас есть три объекта:

Обобщенные типы

В дополнение к стандартным типам данных, в ABAP существует так же ряд обобщенных типов, использование которых возможно только в случае: формальных параметров методов (функций, процедур), field-symbols и ссылочных переменных. Часто используя динамическое программирование, приходится иметь дело с заранее не известными типами данных, для этого нужно знать каким образом их можно представить в виде обобщенных типов.

Перечень таких типов определен ниже:

Тип Описание
any Любой тип данных
any table Любая внутренняя таблица
clike Обобщенный символьный тип (c, d, n, t, string, а так же плоские структуры, состоящие из элементов символьных типов)
csequence Текстовая последовательность (c, string)
data Любой тип данных (аналогично any в случае объявления TYPE data, если объявлять TYPE REF TO DATA, будут подразумеваться ссылки на данные, но не объектные ссылки). Данный тип может быть использован в ссылочных переменных (рассмотрено ниже).
decfloat Числовой тип с плавающей запятой, один из следующих: decfloat16, decfloat34.
hashed table Любая хеш таблица
index table Любая стандартная или сортированная внутренняя таблица.
numeric Числовой тип (i (b, s), p, decfloat16, decfloat34, f)
object Любой объектный тип
simple Любой элементарный тип данных включая плоские структуры состоящие из символьных элементов.
sorted table Любая сортированная таблица
standard table Любая стандартная таблица
table Аналогично предыдущему
xsequence Байтовая последовательность (x, xstring)

Предположим мы пишем некую процедуру, в параметрах которой хотели бы видеть любую сортированную или стандартную таблицу, сделать это можно с помощью обобщенного типа index table:

Источник

Поделиться с друзьями
Расскажем обо всем понемногу
Adblock
detector