Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР4. Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР. Разработкаприложений sap r3Рюдигер Кречмерна языкеВольфганг Вейс
Скачать 28.36 Mb.
|
Глава 1. Основные возможности языка АВАР/4 Глава 2. Средства разработки АВАР/4 Development Workbench Глава 3. Начальный этап работы с АВАР/4 Глава 1 Основные возможности языка АВАР/4 • Структура языка • Работа с типами и объектами данных • Некоторые простые примеры программ • Концепция многократного использования объектов данных в языке АВАР/4 (Advanced Business Application Programming — развитый язык программирования коммерчес- ких приложений четвертого поколения, разработанный компанией SAP. Он является основой системы R/3. Все приложения и даже части базовой системы были разработаны на АВАР/4. Гибкость и простота использования языка в сочетании со специальным набором команд позволяют как небольшим, так и круп- номасштабным коммерческим предприятиям быстро разрабатывать и оперативно внедрять системы АВАР/4 имеет целый ряд преимуществ, которые делают его исключительно удобным для создания таких сложных систем, как R/3. Он относится к разряду языков, в которых реализовано управление событиями, т.е. выполнение приложения координируется действиями пользователя и системными со- бытиями. Важной особенностью языка является концепция применения внутренних таблиц, суть кото- рой в отображении постоянных таблиц базы данных на объекты, существующие во время выполнения, и наоборот. Язык АВАР/4 — это не отдельно используемое средство, а часть общей среды разработки Development Workbench, в которую входит также широкий набор инструментов для планирования и реализации приложений. Язык АВАР/4 подходит как для создания новых приложений в архитектуре так и для расширения возможностей действующих модулей а такие средства, как Remote Function Call (RFC), дают возможность разрабатывать распределенные приложения. Кроме того, приложения, написанные на АВАР/4, поддерживают различные СУБД и ОС, что облегчает их интег- рирование в информационную систем)' компании. Надежность эксплуатационных качеств языка АВАР/4 основывается на многообразии функций и высокой производительности системы Краткое руководство по АВАР/4 Ниже рассматриваются наиболее важные средства АВАР/4. Особо выделены элементы АВАР/4, от- личающие этот язык от других, и показаны преимущества, которые получает разработчик, используя эти элементы. Структура языка В отличие от приложений, созданных на других языках программирования, программу, разработан- ную на АВАР/4, можно читать как обычный текст, написанный на английском языке. Лежащая в основе такого подхода концепция кажется очень простой: нельзя делать программу скоплением загадочных формул, понятных только автору и компилятору, — ее должен суметь прочесть каждый, кто проявил к ней интерес. Эта концепция обеспечивает программам АВАР/4 долгую жизнь. Она делает функциональ- ное расширение программных текстов несложным. Текст программы на АВАР/4 строится из операторов, каждый из них заканчивается точкой. Опе- ратор начинается с зарезервированного ключевого слова, за которым следуют дополнительные пара- метры и объекты данных. Можно объединять последовательность операторов, имеющих одинаковую начальную часть (одни и те же ключевые слова, иногда параметры и объекты данных), в один оператор, используя символы двоеточия и запятой и располагая идентичную часть оператора перед символом двоеточия. Например, два оператора объявления целых переменных data х type i. data y могут быть сокращены до одного оператора: data type у type i. Типы, объекты данных (переменные) и интегрированный словарь Dictionary Кроме прямолинейной структуры текста самой программы, язык АВАР/4 обеспечивает еще и набор элементарных типов (таких, как символьный, целый и дата) и поддерживает две концепции констру- ирования (с помощью записей и внутренних таблиц), которые помогают строить сложные типы и объ- екты данных. Можно также создавать неэлементарные типы и структуры данных, хранить их определения в словаре АВАР/4 Dictionary, чтобы впоследствии использовать эти определения во всех компонентах системы. В результате удается избежать многократного создания объектов данных в про- граммах пользователя, что экономит время и усилия. Неэлементарные типы называются еще типами, определенными пользователем. 4 Глава 1 Основные возможности языка АВАР/4 5 Элементарные типы используются в АВАР/4 так же, как и в любых других языках. Например, поле customer_name типа character длиной 25 символов определяется следующим способом: data type с. Язык АВАР/4 допускает определение неэлементарного типа с помощью ключевого слова types. Ис- пользуя неэлементарный тип, то же поле можно записать так: types type с. data type В этом примере неэлементарный тип t_name определен как type с, имеющий длину 25. Поле customer_name принадлежит к типу Тот же самый тип могут теперь использовать любые О типах данных см. главу 4. Ссылки (references) указывают на то, что программа должна применить для нового объекта данных определение уже существующего объекта, т.е. оба объекта будут использовать одну и ту же информацию. Любые изменения определения исходного объекта данных будут отражаться на всех объектах, имеющих ссылки на исходный объект. Ссылка на объект данных задается с помощью дополнительного ключевого слова like. В следующем примере поле vendor_name наследует всю информацию от поля customer_name: data l i k e Благодаря ключевым словам records (записи) и internal tables (внутренние таблицы) в АВАР/4 можно конструировать не только простые типы и объекты данных, но и сложные объекты. Записи содержат фиксированное число объектов данных, внутренняя таблица — набор произвольного числа записей. АВАР/4 помогает также определять вложенные записи и внутренние таблицы. Определить запись нетрудно. Возьмем, в частности, запись с названием booking, состоящую из трех полей. Для нее можно использовать следующий набор текстов: data: begin of booking, id(4) type c, type d, like end of booking. В этой записи, начинающейся с ключевого слова begin of, определены три поля: id, flight_data и name (последнее поле использует ссылку на поле из приведенного выше примера). За- пись завершается ключевым словом end of. После того как задано определение, на эту структуру можно ссылаться в любом месте программы. Если нужна ссылка на поле внутри данной записи, сначала запи- шите имя записи, а затем через дефис (-) имя поля. Например, чтобы сослаться на поле flight_data в примере, следует записать: Для определения внутренней таблицы добавьте ключевое слово occurs (количество строк) и после него укажите Occurs — это число является оценкой количества строк в таблице. Occurs Parameter влияет только на производительность, не ограничивая максимального размера внутренней таблицы. Во время работы программы, если число строк в таблице превосходит Occurs Parameter, автоматически будет введена дополнительная память. Например, каждый элемент внутренней таблицы с именем booking_table, определенной ниже, будет иметь ту же структуру, что и запись с именем booking: data like booking occurs Многие операции с таблицами требуют записи для информации, добавляемой к текущей строке таб- лицы. Используя with header line (со строкой заголовка) при определении предложения data, в допол- нение к самой таблице можно построить объект данных с той же структурой, что и строка таблицы. О внутренних таблицах АВАР/4 см. главу 12. Интегрированный словарь АВАР/4 Dictionary содержит определения типов и структуры данных, ко- торые можно использовать для всех компонентов системы. В частности, единообразие таблиц обеспе- чивается за счет того, что во всех программах и на всех экранах определение структуры таблиц базы данных содержится в Dictionary. Добавляя ключевое слово like, как и в приведенном выше примере, можно ссылаться на таблицу Dictionary и ее поля. 0 словаре Dictionary см. главу 5. 6 Глава 1 Примеры простых программ Рассмотрим примеры простейших программ АВАР/4. В этом языке множество стандартных команд выполняют такие операции, как перемещение данных, вывод на экран и форматирование полей. Боль- шинство примеров не требуют дополнительных пояснений. Команды С помощью команды move можно копировать содержимое объекта данных и помещать его в другой объект. Эта команда записывается в АВАР/4 в форме: move источник to приемник. Если тип или длина источника отличаются от аналогичных атрибутов приемника, АВАР/4 преобразовывает содержимое поля источника к содержимому поля приемника с помощью формата поля приемника. АВАР/4 поддер- живает использование арифметических выражений, которые обрабатываются так же, как в других язы- ках программирования. Команда write позволяет выводить содержимое поля в стандартном формате, определяемом типом поля. Например, для вывода строки текста 'АВАР/4 is easy.' нужно записать: write 'АВАР/4 is e a s y . ' . Допускается явное задание набора специальных опций для определения отображения поля (таких атрибутов, как цвет) или его положения внутри списка. Вместо прямой записи программного текста можно применять символьные идентификаторы. Это особенно полезно для программистов из других стран, говорящих на других естест- венных языках. Текст в форме идентификаторов текста хранится в Repository и всегда быть выведен на родном языке пользователя. Этот прием позволяет переводить символьные тексты про- граммы на другой язык без изменения ее исходного текста. АВАР/4 относится к языкам, в основе которых лежит управление событиями, что позволяет разра- батывать и реализовывать хорошо структурированные диалоговые программы. Во время выполнения программы могут возникать события, инициируемые пользователем или самой системой. При этом вы- полняются все операторы между ключевым словом, соответствующим данному событию, и ключевым словом следующего события. Если программа обеспечивает определенные функции вложенной обработ- ки, она реагирует на выбор пользователем любой строки. Другими словами, если программа дает воз- можность указать объект с помощью двойного щелчка мышью и просмотреть информацию, связанную с этим объектом, в ней должен быть записан текст, который выводит на экран эту необходимую ин- формацию, связанную с возникновением события, заключающегося в щелчке мышью. Оператор обра- ботки такого события помещается после команды at line selection: at l i n e selection. ' This is displayed after double-clicking a Таким образом, события определяют внешние управляющие воздействия для программы, т.е. то, как пользователь может взаимодействовать с программой, или то, как система влияет на ход выполнения программы. Внутреннее управление задается стандартными управляющими структурами. Конструкция позволяет управлять выполнением программы с помощью логических условий, в то время как конструкция case/when/endcase осуществляет ветвление в соответствии с фиксированным набором значений. Безусловный цикл задается с помощью do/enddo, а конструкция используется для определения цикла с условиями завершения. Эти конструкции, знакомые каждому, работают так же, как и в других языках программирования. Определение подпрограмм В языке АВАР/4 поддерживается два способа определения подпрограмм: определение форм и опреде- ление функций. Формы в АВАР/4 локализованы в теле конкретной программы, в то время как функции являются глобальными компонентами, которые могут вызываться из различных программ. Оба типа данных обеспечивают инкапсуляцию локальных данных и различные способы передачи данных через интерфейс- ные параметры (как по значению, так и по ссылке). Проверка типов интерфейсных параметров для форм и функций производится во время выполнения программы на стадии синтаксического контроля. Функции имеют открытый интерфейс, который строится и поддерживается с помощью средств опи- сания интерфейса. Так как функции обычно вызываются из многих программ, они снабжены механиз- мами обработки исключений. Ситуация исключения задается оператором raise. Если при выполнении программы возникает исключение, выполнение функции сразу прерывается. Вызывающая программа либо в явном виде обрабатывает исключение, либо позволяет системе завершить текущую программу. Форма определяется ключевыми словами form/endform, а вызывается командой perform. Интер- фейсные параметры перечисляются после ключевых слов using или changing, и каждый из них зависит от своего положения в списке: perform using changing Основные возможности языка АВАР/4 7 writ»: a2. form using £1 changing £2 l i k e = £ 1 + * 17) . Функция определяется ключевыми словами function/endfunction, а вызывается оператором call {unction. Параметры функции в отличие от параметров формы задаются по имени. Таблицы данных и внутренние таблицы В средства языка АВАР/4 интегрировано подмножество операторов SQL (так называемый открытый SQL — Open SQL). Программы использующие Open SQL, получают доступ к информации всех данных, поддерживаемых системой R/3 и обеспечивающих одновременное использование таблиц и таблиц базы. Во время выполнения программы содержимое таблиц базы данных копироваться во внутренние таблицы, поэтому внутренние таблицы можно рассматривать как "момен- тальные таблиц базы данных. Например, чтобы построить список со всеми элементами табли- цы базы данных, можно считать содержимое таблицы базы во внутреннюю таблицу, которая имеет аналогичную структуру, после чего вывести на экран каждую строку: tables data customers occurs 100 with header l i n e . select * from customers i n t o t a b l e loop at / endloop. Используя предложение можно ограничить множество выбираемых записей некоторым логи- ческим условием, а также задать подмножество всех полей таблицы и реализовать такие функции гирования, как проверка числа элементов таблицы на соответствие заданному условию. Кроме того, в АВАР/4 поддерживаются динамические операторы select. В языке АВАР/4 предусмотрено несколько команд для изменения таблиц базы данных (insert, update, modify и delete), позволяющих изменять как отдельный так и набор элементов. Таблицы ре- ляционной базы всегда имеют структуру (не допускают вложенных таблиц). Локальные екты программы могут быть глубоко структурированными, т.е. содержат вложенные структуры или даже внутренние таблицы. Для хранения содержимого таких глубоко структурированных объектов в плоских таблицах сформируйте объекты так, чтобы они соответствовали плоской структуре таблиц базы. Однако команды export и import обеспечивают возможность записывать и считывать сложные объекты без предварительного преобразования (используя одну операцию). Команда sort позволяет сортировать внутреннюю таблицу в соответствии с заданными полями сор- тировки. Можно считывать строки таблицы последовательно с помощью команды огра- ничивая подмножество строк таблицы в цикле предложением where. АВАР/4 предоставляет доступ к отдельной строке: в операторе read table есть параметры, которые задают индекс необходимой строки или соответствующий логический ключ. Если таблица отсортирована, можно ускорить процесс доступа, задав двоичный метод поиска. Поддерживается вывод на экран промежуточных сумм, заголовков и дру- гой информации по группам элементов внутренней таблицы. Для этого используются программные блоки, заключенные в "скобки" операторов at/endat. Такие блоки обрабатываются всякий раз при из- менении содержимого некоторого ключевого поля. В приведенной ниже программе показано, как табличные операции для просмотра числа свободных мест на различных авиалиниях. Внутренняя таблица рейсов заполняется информацией из базы данных, и на экран выводится число занятых мест для каждого элемента табли- цы. В выходную информацию добавляются заголовок и общее число занятых мест по каждому рейсу. (Строки, которые начинаются с являются комментариями.) * Database table with flight data tables flights. Internal table for flights data like flights occurs 10 with header line. * Statistical data data like * Heading the flights from the database select from flights into table order primary * Displaying the number of occupied seats on each flight * with headers and subtotals for each carrier loop at 8 Глава 1 new write / endat add to write / at end of write / endat. Это пример того, насколько выгоднее использовать в коммерческом приложении специаль- ные языковые Ключевое слово like в определении внутренней таблицы говорит о том, что она имеет такую же структуру, что и таблица базы данных. На самом же деле эта структура копируется во внутреннюю таблицу, которая заполняется данными из таблицы базы данных за одну операцию. Создание отчетов и диалоговых транзакций Отчет (report) в языке АВАР/4 является которая извлекает данные из базы, группирует их в соответствии с различными критериями и отображает на экране или устройстве печати в виде списка. Для создания отчета можно использовать средства АВАР/4 Query, которые не только позволяют задать размещение данных в списке, но и автоматически генерируют код программы (рис. 1.1). Однако, если разработчик хочет использовать максимально гибкие возможности языка программирования, он должен строить отчет с помощью команд select или средств Logical Database, которые существенно упро- щают доступ к базе данных. Logical Database предоставляет процедуры для извлечения из базы сложных данных, что облегчает разработку хорошо структурированных отчетов. При использовании Logical Database для создания отчета экран выбора для задания критериев отбора данных, а также программ- ный код реакции на неправильный ввод генерируются автоматически. 1.1 запроса АВАР/4 В приложении В подробно обсуждаются возможности и способы использования Query в АВАР/4. О команде select см. главу 11, о Logical Databases — главу 15. Logical Databases обеспечивает многократное использование объектов данных и методов работы с ними, что дает возможность обращаться к АВАР/4 из разных языков программирования. Преимущества Основные возможности языка АВАР/4 9 Рис. 1.2 Задание критериев Select-Options на экране выбора многократного использования данных и процедур становятся очевидными, когда требуется сформиро- вать множество отчетов с помощью одной и той же логической Logical Database. Например, оп- тимизация работы одной Logical Database улучшает производительность системы при получения большого количества отчетов. Каждый отчет АВАР/4 имеет стандартный экран выбора для ввода параметров. Обеспечивается также создание дополнительных полей ввода на стандартном экране. Для этого служит программный блок (рис. 1.2). Его можно использовать, например, в отчете для задания определенных пользователем фамилий клиента при считывании данных с помощью select: tables data l i k e customers occurs 100 with header s e l e c t * customers i n t o t a b l e all_customers where name in Параметры выбора могут быть записаны в виде представляющего собой набор значений, применяемых в критериях отбора данных для отчета. При вызове отчета с указанием варианта в поля ввода на экране выбора автоматически записываются параметры, для варианта. В АВАР/4 включен широкий спектр средств и языковых конструкций для разработки приложений, использующих диалоговые окна и экраны ввода с удобным графическим интерфейсом (GUI). Проверка правил, записанных в Dictionary, и контроль непротиворечивости данных обеспечивают целостность данных на всех уровнях ввода информации. Другими словами, программные проверки гарантируют пра- вильность данных на любой стадии их ввода пользователем; если данные неверны, пользователь должен их скорректировать. Работа с экранными формами напоминает работу с обычными бумажными форма- ми документов. Организация взаимодействия с экраном включает две части: размещение (layout) и программную логику (flow logic). В состав компоновки жрана входят меню, поля ввода, названия этих полей, или метки, экранные кнопки, переключатели и управляющие элементы таблиц. Разработчик выбирает эти элементы из ин- струментальной линейки или словаря Dictionary и, отбуксировав их мышью с помощью метода drag-and- drop, размещает на экране. Программная логика жрана состоит из событий ввода и вывода, а также из событий, возникающих, когда пользователь обращается за помощью справкой) во время ввода. При возникнове- нии каждого события производится обработка данных, операторы которой записаны в управляющей программе в форме модулей. В частности, последовательность вызова экранов определяется вводимыми пользователем данными и модулями обработки событий, записанными в программе после ключевого слова input. Если пользователь вводит неверные данные, система формирования сообщений выводит на экран сообщение об ошибке и предлагает помощь. 10 Глава 1 рис. 1,3 приведен простейший экран ввода данных, необходимых для реализации запроса о бро- нировании мест на авиарейс, на рис. 1.4 — экран для заказа мест на авиарейс и ввода данных о клиенте. Транзакцией в языке АВАР/4 называется диалоговая программа, которая изменяет объекты в базе данных, не нарушая ее целостности. Средства АВАР/4 Development Workbench обеспечивают создание транзакций в распределенной среде Однако разные пользователи могут обращаться к одной и той же базе данных через разнообразные транзакции Для того чтобы пользователи не могли ввести в таблицу неправильные данные, грозящие разрушением всей базы данных, в АВАР/4 предусмотрен специальный механизм блокировки. Он реализован на основе концепции специального рабочего логического блока Logical Unit of Work (LUW). Этот блок является замкнутым набором шагов 1.3 Запрос информации о маршруте полета 1.4 Экран для заказа мест на авиарейс и данных о клиенте Основные возможности языка АВАР/4 11 внутри транзакции, каждый из которых должен корректно завершиться перед окончанием LUW как части транзакции. Если до завершения транзакции возникает ошибка, все изменения, сделанные в текущем отбрасываются, однако все изменения в предыдущих LUW этой транзакции остаются в силе. Таким образом гарантируется непротиворечивость данных таблиц базы в любых ситуациях. Механизмы блокировки позволяют в каждый момент времени изменять объект данных только одному пользователю. Режим компиляции и выполнения При работе системы исходный текст программы на языке АВАР/4 компилируется в программный код и тут же выполняется. Процесс компиляции называется также генерацией.. Сгенерированная программа хра- нится в архиве АВАР/4 Repository. Любое изменение исходного текста или объектов в Dictionary вызывает повторную генерацию программы. Язык АВАР/4 автоматически генерирует программу, когда она необхо- дима, поэтому разработчику нет необходимости специально предусматривать этот процесс. Режим поддерживаемый в АВАР/4, обеспечивает ряд преимуществ. Во-первых, можно быстро создать и проверить приложение. Во-вторых, изменения объектов в Dictionary касаются только тех программ, которые используют данные объекты. Это сокращает цикл редактирование — от- ладка, так как изменения объектов сразу же становятся доступными. Последнее, но весьма важное пре- имущество заключается в том, что сгенерированная программа может передаваться по сети, например в распределенной системе R/3. Если система имеет доступ к узлу сети, в этом узле выполняется любая существующая в сети программа. В каждой распределенной системе R/3 программы АВАР/4 выполня- ются на серверах приложений (т.е. на узлах второго уровня трехуровневой архитектуры системы Следовательно, программы нельзя запустить на отдельном сервере. Зато они могут работать на локаль- ных серверах, что позволяет оптимизировать использование локальных ресурсов. О трехуровневой архитектуре системы см. в приложении А. Поддержка нескольких языков АВАР/4 позволяет легко разрабатывать прикладные программы, которые можно использовать в раз- личных странах мира. На экран и принтер символьные строки выводятся с помощью кодов, которые не зависят от языка конкретной страны. Эти коды могут переводиться на различные языки, при этом изменять или генерировать программу не требуется. При выполнении программы тексты, не зависящие от языка, всегда выводятся на том языке, который пользователь указал при регистрации в системе. Тексты, не зависящие от языка, используются для следующих программных элементов: • Программной документации и заголовка программы • Заголовков, меток и подсказок, записанных в полях Dictionary • Текстов на экранах выбора • Идентификаторов кода, используемых в командах write • Заголовков страниц и заголовков столбцов в отчетах • Функций, входящих в меню, и обозначений кнопок • Описания интерфейсов функций • Текстовых полей на экране • Кодов сообщений Многократное использование элементов программ В языке АВАР/4 поддерживается широкий набор многократно используемых компонентов: • Средство определения структур и типов Dictionary • Функции с гибким интерфейсом и обработкой исключений • Логические базы (Logical Databases) для извлечения данных, используемых в отчетах 12 Глава 1 Информация о структурах таблиц Dictionary и отдельных полях таблиц применяется во всех про- граммах и экранах системы. Например, внутренняя запись о программе, структурированная как таблица Dictionary, устанавливается с помощью команды определения таблицы tables. Введя дополнение like в определение данных, можно делать ссылки на целые структуры и отдельные поля, а также ссылаться на параметры форм и функций как на объекты данных Dictionary. Кроме того, разрешается объявлять неэлементарные типы и константы, используя определение объекта специального типа Dictionary type- pools (в программах — декларация Если определение в Dictionary изменяется или активизи- руется, все программы и экраны, которые ссылаются на этот объект, в следующий раз при вызове автоматически генерируются заново. Средства АВАР/4 Development Workbench тоже содержат большое число многократно используемых функций, каждая из которых определяется своим уникальным именем и принадлежит к группе, состоя- щей из одной или нескольких функций, выполняющих подобные операции. Например, существуют функциональные группы для распечатки документов, ведения бухгалтерских книг или чтения информа- ции из составных финансовых документов. С программной точки зрения группа функций является про- граммой, которая существует, пока вызвана функция из этой группы. Если функция из группы вызывается той программой, которая уже вызвала другую функцию этой группы, локальные данные группы сохраняют свои значения, оставшиеся от предыдущего вызова. Интерфейсные параметры функции могут определяться как необязательные и иметь значения по умолчанию. Следовательно, в вызывающей программе можно использовать значения параметров функ- ции по умолчанию, а не задавать специально все необходимые. Это обеспечивает функции гибкость при многократном применении и увеличение ее жизненного цикла. Кроме того, с помощью функции на экран выводятся диалоговые окна, или интерфейсные экраны. Средства АВАР/4 Development Work- bench содержат множество функций, поддерживающих стандартизованные диалоговые окна (в том числе функции подтверждения ввода). Доступ функции к сети поддерживает механизм Remote Function Call (RFC). Технология RFC служит основой для интегрированных систем Это означает, что функции могут быть вызваны из любой точки сети для многократного использования в других системах. Как уже отмечалось, средства Logical Databases обеспечивают унифицированный доступ при поиске данных. Изменения, произведенные в Logical Database, вносятся во все отчеты, использующие эту ло- гическую базу. Таким образом, в реальном времени можно изменить содержимое сразу нескольких от- четов, внеся изменения только в логическую базу (Logical Database). Концепция многократного использования дает огромное преимущество при реализации больших программных проектов, позволяя добавлять новые возможности с минимальной перекомпиляцией и настройкой существующих компонентов, обеспечивая максимальную гибкость программы. Во-первых, если программа выполняется после изменения и инициализации объектов Dictionary, она подвергается повторной компиляции только при ссылке на один из измененных объектов. Такой подход позволяет избежать неудобных в использовании файлов заголовков. Во-вторых, интерфейс с функцией может быть расширен без внесения каких-либо изменений в уже существующие вызовы. И наконец, отчет, реали- зованный с помощью Logical Database, позволяет свободно выбирать таблицы, считываемые из базы. Открытые интерфейсы Пользователи системы R/3 обычно работают в среде клиент/сервер с широким спектром инстру- ментальных средств и продуктов. Поэтому приложения, написанные на АВАР/4, должны по возмож- ности без особых трудностей взаимодействовать со всеми компонентами рабочей среды. В языке АВАР/4 поддерживаются различные открытые интерфейсы, обеспечивающие такое взаимодействие. Простейший из них файловый интерфейс для обмена внешними (относительно программы) данными. Механизм Remote Function Call поддерживает следующие режимы: прямой межпрограммный обмен между системами R/3, обмен между системой R/3 и системой SAP R/2 на мэйнфрейме, обмен между системой R/3 и внешними программами, например на языках C/C++ или Visual Basic. Механизм RFC работает и в синхронном, и в асинхронном режимах обмена. Это избавляет программиста от необхо- димости изучения таких деталей, как коммуникационные протоколы, особенности сетевой организации и текстовые страницы. Посредством Open Object Interface язык АВАР/4 поддерживает OLE Automation. Это дает возмож- ность разработчику интегрировать в систему приложения для персональных компьютеров. Здесь АВАР/4 не имеет ограничений: он может использовать объекты других технологий (например, в сле- дующие версии R/3 будет введена поддержка CORBA). О применении Open Object Interface для объектов OLE см. главу 28. Основные возможности языка АВАР/4 13 Резюме • Программа на языке АВАР/4 читается как обычный текст, ее легко освоить, так что другие поль- зователи без особого труда могут ее расширить. • Язык АВАР/4 обеспечивает набор элементарных типов и две концепции конструирования (с по- мощью записей и внутренних таблиц), которые помогают строить более сложные типы и объекты данных. • Интегрированный словарь Dictionary содержит определения типов и структур данных, которые используются во всех компонентах системы. • Средства Logical Databases включают процедуры для извлечения сложных данных из базы, что позволяет формировать специальные отчеты. В этой главе введены некоторые понятия собственно языка АВАР/4. Следующая глава посвящена Development Workbench — набору средств для поддержки и расширения возможностей языка АВАР/4. 2 65 |