imagesДля манипуляций с файлами на стороне сервера приложений был разработан файловый интерфейс ABAP.

Данный интерфейс реализован набором операторов ABAP и их атрибутов. Как будет видно в следующих статьях, интерфейс позволяет работать с файлами на абстрактном уровне, где ключевым объектом является набор данных (dataset).

Набор данных это нечто вроде файлового дескриптора, при программировании работы с файлами в ОС, на других языках. Так же, как и с дескрипторами, в ABAP можно одновременно работать с несколькими файлами (Читать из одного, а записывать в другой и т.п.), но открывать один и тот же файл без его закрытия в рамках одной программы невозможно (для юникодных программ, для не юникодных программ повторное открытие не приведет к ошибке, но будет проигнорировано).

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

В данной статье рассмотрен вопрос хранения путей для директорий и файлов, вне зависимости от ОС и сервера приложений.

Читать далее

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

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

Читать далее

database-219x218

Начиная с версии 7.0, EhP2 в ABAP была введена новая концепция обработки внутренних (внешних) данных — потоковая обработка данных.

Поток – ссылка на последовательный набор записей данных, чей конец может быть не известен. Потоки разделяются по виду: потоки данных и фильтрующие потоки.

Фильтрующие потоки в настоящее время не реализованы и не рассматриваются в данной статье.

Потоки данных – такие потоки, которые напрямую соединены как читающий поток к источнику данных или как записывающий поток к приемнику данных.

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

Источник данных – хранилище, из которого происходит получение данных читающим потоком. Источником может быть LOB поле в базе данных, файл, строка или внутренняя таблица. В настоящее время чтение доступно для полей из таблиц баз данных (LOB поля), строк и внутренних таблиц.

Читать далее