К основному контенту

ABAP кратко

/h - start debugging 
/hs - system debugging 
/ha - debugging - no screens 


l_         - локальная переменная с единственным значением
lt_        - локальная таблица
ls_       - локальная структура
lr_        - локальная переменная типа Range
lv_        - локальная переменная
lty_     - локальный тип
t_         - локальный тип
p_        - параметр
so_      - selection option
<ls_>  - field symbol на структуру (все остальное по аналогии)
lcl_      - локальный класс
lo_       - объект
rg_       - range


range это внутренняя таблица, которая состоит из 4 полей: sign, options, low и high. По сути range это аналог select-options и заполняется точно также: SIGN = 'I' (включить) или 'E' (исключить), OPTIONS содержит отношение (EQ, NE, LT, LE, GE, GT, ... ), а LOW и HIGH конкретные значения. Удобство range в том, что его можно привязывать к любым полям любых таблиц (АВАР/внутренние)

Структуры содержат фиксированное число полей и служат для объединения простых полей в более сложный, например, данные о сотруднике. Структуры объявляются служебными словами BEGIN OF и END OF.

В системе предусмотрена глобальная структура SYST, которая хранит системные данные. Доступ к ней в программе осуществляется по имени SY. Некоторые значения системных переменных указаны ниже.

SY-DATUM Актуальная дата сервера приложений
SY-UZEIT Актуальное время сервера приложений
SY-INDEX Счетчик цикла DO
SY-TABIX Индекс в цикле LOOP
SY-SUBRC Код возврата, содержит результат последней выполненной операции. SY-SUBRC = 0 в случае успешного выполнения.
SY-LANGU Язык входа в систему
SY-BATCH Программа выполняется в фоновом режиме
SY-BINPT Программа выполняется в рамках пакетного ввода
SY-REPID Имя текущей программы
SY-UNAME Имя пользователя

В общем виде, если очень на пальцах и быстро, ракурс служит для скрытия физических имен таблиц и полей и предоставления общего интерфейса доступа к базе данных разработчикам клиентской части. Например у меня есть таблица ZZZZ и пять полей с именами Z1 по Z5, я делаю ракурс без объединения таблиц с именем ZYZ и делаю присвоение полей типа 

ZYZ-ID = ZZZZ-Z1 
ZYZ-NAME = ZZZZ-Z2 
ZYZ-DESC = ZZZZ-Z3 

Разработчик программы работает с ракурсом, при этом если в дальнейшем я решу разбить таблицу ZZZZ на две или переименовать поля, я просто пересоздам ракурс, но так как поля ракурса останутся таким же, то с точки зрения программы работающей с ракурсом ничего не поменяется, все останется в рабочем состоянии.


1. Для каждого экрана обработка двух событий:
РВО - обработка логики перед выводом на экран
РВО-модули (Process Before Output - обработка событий до раскрытия экрана);
РАI - обработка логики после ввода с экран
РАI-модули (Process After Input - обработка событий после ввода команды пользователем с экрана);
2. Модули этих событий обрабатываются последовательно друг за другом.
3. Для выполнения модуля диалоговому процессору передается контроль и управление.
4. После обработки всех модулей событий РВО содержимое всех одноименных полей программы копируются в соответствующие поля экрана.
5. Перед обработкой первого модуля событий РАI содержимое одноименных полей из шаблона экрана копируются в соответствующие поля АВАР/4-программы.
6. По ОК-коду можно узнать и обработать код введенной команды.

Комментарии

Популярные сообщения из этого блога

стандарт MM

Материал MM01 - Создание материала &   ME11 - Создание инфо-записи //внести артикул поставщика   CV04N - Поиск документа // сертификат смотреть здесь   MEK1 - Создание условий (закупки)   MR22 - Дебетование/кредитование материала   V/LD - Выполнение списка условий // просмотр (zs)   MM60 - Каталог материалов   Запас MB52 - Ведомость складских запасов // остатки, но сколько в резерве не указано   MB5B - Запасы на дату проводки // остатки на указанный период   MB5T - Запас в пути - БЕ // запас в пути   MMBE - Обзор запасов   Документ материала MB03 - Просмотреть документ материала   MB51 - Список документов материала // все движения по материалу (перемещения тут)   MBGR - Просмотреть ДокумМтрл к ПричДвижен //причина движения   MIGO - Движение материала ...

стандарт SD

Сбытовой заказ VA01 - Создание заказа клиента // возврат ZRE2   VK11 - Создать условие //ZSP1   V/LD - Выполнение списка условий // выгрузить прайс в эксель   VA05 - Список заказов VA05N - Список заказов   V.02 - Список неполных заказов   V_RA - Обработка отставаний: список выбора   Заявка ME51N - Создание заявки   ME55 - Групповое деблокирование заявок // для MM   ME54N - Деблокировать заявку //для MM   ME56 - Присвоение заявке источника поставки // присвоение договора   Печатные формы NACR - WFMC: ведение записей условий ВыхДок // привязать печатную форму   VL71 - ВыходДокументы из исходящих поставок // печать паллетного листа   Дебитор XD03 - Просмотр дебитора (центральный)   IDOC WE02 - Просмотреть IDOC   ...