batch input abap что это

ABAP Blog

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

ABAP Blog

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

Ссылки

Цитаты

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

Ф. Дж. Плоджер

Новое

Последние комментарии

LSMW — Инструкция

LSMW – инструмент для переноса данных из внешних систем в SAP систему. Данные могут быть введены с помощью следующих технологий: Batch Input, Direct Input, BAPIs или IDocs. Далее инструкция как этим инструментом пользоваться.

Принцип работы LSMW:

До того как применять LSMW необходимо убедиться в следующем:

Предварительная настройка

Убедитесь что у пользователя, под которым будет происходить импорт, достаточные полномочия:

Уровень авторизации Профиль Функции
Просмотр B_LSMW_SHOW Пользователю разрешается просматривать все проекты LSMW
Выполнение B_LSMW_EXEC Пользователь может выполнять и редактировать шаги проектов
Изменение B_LSMW_CHG Пользователь обладает полномочиями на просмотр объекта LSMW, импорт и чтение данных.
Администрирование B_LSMW_ALL Все полномочия на LSMW

Внешний вид после запуска инструмента (транзакция LSMW):

Project – имя проекта, например «Логистика»

Subproject – имя подпроекта, например «Закупки»

Object – имя объекта LSMW который включает все операции по переносу данных, например «Заявка».

С помощью кнопок на начальном экране можно:

Администрирование

Импорт данных шаг за шагом

После выбора (создания) проекта, подпроекта и объекта LSMW нажмите ENTER, вы попадете на экран определения шагов для объекта:

ВНИМАНИЕ! При авторизации в SAP GUI на английском языке названия шагов отображаются на английском языке, при авторизации на русском языке, отображаются только номера шагов. Однако при работе на EN русские названия в считываемых файлах отображаются некорректно, поэтому загрузку следует осуществлять ТОЛЬКО с авторизацией на RU(русском) языке в SAP GUI.

С помощью кнопки Personal Menu вы определяете, какие шаги будут использоваться в объекте. Кнопка Object Overview позволяет посмотреть всю информацию по выбранному объекту. Action Log – просмотр истории изменений, запусков. Execute – выполнить выбранный шаг. Для изменения шагов выберите Double Click = Change.

Определение атрибута объекта (Maintain Object Attributes)

Определение пользовательских структур(Maintain Source Structures)

На данном шаге определяются имена пользовательских структур их описания и иерархия. Одна структура может включать несколько других, которые в свою очередь могут включать другие и т.д. Пользовательская структура заполняется из внешних данных, после чего используется для переноса данных в SAP систему.

Определение полей для структур(Maintain Source Structures)

Этот шаг определяет, из каких полей состоят пользовательские структуры. При создании поля можно определить ее тип, длину, имя, описание. Используя параметр «Selection Parameter for Import/Convert data» мы определяем, будет ли данное поле появляться на экране в шагах чтения, конвертации данных, если да то данные из файла будут считаны в соответствии с введенным значением в эти поля. Структуру можно скопировать из внешнего файла, репозитария, другого объекта. При копировании из внешнего файла с разделением полей табуляцией можно воспользоваться Excel структура файла будет примерно такой:

Определение связей структур (Maintain Structure Relations)

На данном шаге определяется связь между структурами объекта импорта (Поля в структурах BAPI, поля для пакетного ввода и т.п.) и пользовательскими структурами. В приведенном выше примере структуры из пакетного ввода: BGR00, BKN00, BKNA1, BKNB1 будут заполнены из пользовательской структуры CUSTOMER_HEADER, структура BKNVK из CUSTOMER_CONTACTS. Обратите внимание на то, что многие программы пакетного ввода содержат структуры BGR00 и BI000, они должны быть заполнены всегда.

Определение связей и правил преобразования (Maintain Field Mapping and Conversion Rules)

На данном шаге определяется связь между полями пользовательских структур и полями структур назначения (Полями пакетного ввода, BAPI и др.), а так же правила преобразования. Все поля структур назначения, которые были заполнены на предыдущем шаге, будут отображены на этом экране. Поля содержат следующую информацию:

Некоторые поля являются техническими и заполняются системой автоматически, правило для них присваивается как Default Settings (зеленые записи). Изменение значений данных полей может повлиять на ход выполнения импорта.

Правила присвоения полей:

If not is initial.
= ‘X’.
else.
= ‘’.
Endif.

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

Например, кодировка __BEGIN_OF_TRANSACTION__: ее выполнение начинается до момента обработки записи, в случае создание объекта в R3 на данном этапе можно проверить его существование в системе, в случае если он уже есть, пропустить текущую запись с помощью глобальной функции — skip_transaction. Таким образом, можно уберечься от падения в дамп сессии пакетного ввода при импорте данных.

Кроме того кодировки позволяют динамически менять транзакции и записи пакетного ввода манипулируя полями bkn00-tcode и TABNAME. Например, в случае если объект присутствует в системе запустить пакетный ввод на его изменение.

На шаге Maintain Fixed Values, Translations, User-Defined Routines с помощью правил преобразования (Translations) можно определить, чем будет заменены значения из исходных структур, определять правила как для конкретных значений, так и для диапазонов. Кроме того на этом шаге определяются константы используемые на предыдущем (Fixed Values) и кодировки которые вызываются не однократно (User-written routine).

Определение файлов(Specify Files)

На данном шаге определяются файлы:

При присвоении файла с данными можно выбрать:

Присвоение файлов структурам(Assign Files)

На данном этапе задается из какого файла будет читаться структура. Если структура одна данный шаг можно пропустить.

Генерация программы считывания (Generate Read Program)

На данном этапе генерируется программа чтения данных из файла. Можно пропустить.

Просмотр программы чтения (Generate Read Program)

Просмотр исходника программы чтения файлов. Можно пропустить.

Чтение данных (Read Data)

На данном шаге определяется количество записей, которые необходимо считать (Transaction Number). Если при определении полей структуры было указано что поле должно показываться на экране выбора чтения/конвертации данных, так же его необходимо заполнить. Так же задаются правила для преобразования чисел и дат.

В данном случае при чтении файла проверяется поле CUSTOMERNUMBER.

Просмотр считанных данных (Display Read Data)

На данном шаге отображаются считанные из файлов данные.

Генерация программы преобразования (Generate Conversion Program)

На данном этапе генерируется программа по преобразованию считанных данных. Можно пропустить.

Читайте также:  какой значок у ситроена

Конвертация данных (Convert Data)

На данном этапе производится преобразование считанных данных в поля объекта LSMW. (BAPI, поля Batch input и т.п.). Если в пользовательской структуре были поля указанные как поля ввода, необходимо их так же ввести.

Просмотр присвоений после конвертации (Display Converted Data)

На данном шаге показываются все присвоения после конвертации данных.

Импорт данных

В зависимости от типа объекта LSMW далее будут отображены следующие шаги:

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

Перенос проектов LSMW.

Экспорт/импорт проектов.

Запись пакетного ввода (Recordings)

Вы можете назначать полям пакетного ввода значения по умолчанию (столбец слева), поля которым присвоены имена (столбец справа — красные) на шаге «Maintain Field Mapping and Conversion Rules» будет возможно присваивать значения из пользовательской структуры (создавать привязку).

Источник

Иван Болховитинов

Вводная

Пакетный ввод – это симуляция работы пользователя в одной определённой транзакции.

Программный пакетный ввод может только то, что может пользователь.

Как правило BDC используют для проведения массовых и повторяющихся действий (создание или изменение объектов или документов).

Пример

Для примера возьмём изменение основного средства в транзакции AS02. Нам необходимо массово изменить в карточке ОС табельный номер материально-ответственного лица.

Шаг первый

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

Шаг второй

Делаем запись. Заходим в SHDB и делаем в ней чистовой прогон транзакции AS02.

После это смотрим на получившуюся запись.

Данную последовательность вполне успешно можно читать “с листа”.

Группы – это последовательный проход экранов. Внутри групп пользователь тыкает мышкой, изменяет поля и нажимает кнопки. После нажатия кнопки происходит переход к следующему экрану.

Можно конечно воспользоваться кнопкой “Создать программку”, но это не мой метод:

Шаг третий

Копируем запись по Ctrl+Y и грубо вставляем в нашу программу “как есть” и делаем зачистку ненужного:

Итого должны остаться:

Шаг четвёртый

Заворачиваем эти строки в ABAP – мы должны переложить эти строки в таблицу со структурой BDCDATA. Практически мы должны получить что-то вроде исходной таблицы записи.

Для этого лучше воспользоваться какими-то мелкими помогалками (инклюдами, макросами). Я пользуюсь вот этим.
(PS: Ссылка умерла: другой подход).

Получится что-то вроде этого:

perform bdc_dynpro using ‘SAPLAIST’ ‘0100’.
perform bdc_field using ‘BDC_OKCODE’ ‘/00’.
perform bdc_field using ‘ANLA-ANLN1’ gt_report-anln1_new.
perform bdc_field using ‘ANLA-ANLN2’ gt_report-anln2_new.
perform bdc_field using ‘ANLA-BUKRS’ gt_report-bukrs.

perform bdc_dynpro using ‘SAPLAIST’ ‘1000’.
perform bdc_field using ‘BDC_OKCODE’ ‘=TAB02’.

perform bdc_dynpro using ‘SAPLAIST’ ‘1000’.
perform bdc_field using ‘BDC_OKCODE’ ‘=BUCH’.
perform bdc_field using ‘ANLZ-PERNR’ gt_report-pernr_new.

perform bdc_dynpro using ‘SAPLAIST’ ‘3020’.
perform bdc_field using ‘BDC_OKCODE’ ‘=YES’.

perform bdc_dynpro using ‘SAPLAIST’ ‘1000’.

gs_bdc_params-dismode = ‘N’.
refresh gt_bdc_result.
call transaction ‘AS02’ using gt_bdc_data
options from gs_bdc_params
messages into gt_bdc_result.

Это уже с добавленной инициализацией сверху и непосредственным вызовом транзакции снизу.

Средняя часть – это всего лишь формирование таблицы gt_bdc_data.

Читается она блоками следующим образом:

Если у вас есть поле с числовыми значениями, то вам понадобятся дополнительные обработки, так как формат числа на экране и внутри ABAP может отличаться:

lv_wrbtr = bseg-wrbtr.
CONDENSE lv_wrbtr.
REPLACE ALL OCCURRENCES OF ‘.’ IN lv_wrbtr WITH ‘,’.

Ну и с датой история попроще.

[TODO] Собраться добавить эти штуки в инклюд

Конструкция “dismode = N” говорит о невидимом выполнении. В целях отладки пакетника меняете этот код на A (видимое выполнение) или E (только ошибки).

Ошибки будут находиться во внутренней таблице gt_bdc_result. Там только коды, но русский текст вы можете получить при помощи ФМ RPY_MESSAGE_COMPOSE.

Источник

BDC – Batch Data Communication in SAP ABAP

BDC means Batch Data Communication, not Batch Data Conversion. Moreover, it was renamed Batch Input at least 20 years ago (the term BDC is still widely used though).

In this blog, I am gonna discussed the SAP DATA Migration tools mainly BDC- Batch Data Communication to export data from non-SAP environment to SAP ERP.
I will create BDC (Upload) Program for cheques with Payment doc.i-e; the BDC Program for transaction code FCH5 – Create Check.

I will discussed and write ABAP Code for BDC creation using two methods.

1- Online/Real time Data Upload.

2- Session/Batch Data Upload (using t-code SM35)

Pros and Cons.

1- Online/Real time Data Upload.

The Error Handling is Explicit: means you have to write ABAP code to collect errors generated for each records at the time of Program Execute for analysis using Message table T001.

2- Session Method Data Upload (using t-code SM35)

The Error Handling is Implicit: means you don’t have to collect the error messages for records to analyze, as it was already get created when Batch (created ) is execute from SM35. And you can analyze the errors for Batch over there.

1- Online/Real time Data Upload.

1- Declare Structure/Internal Table/Work Area for File Format.

2- Call Function module ‘GUI_Upload’
3- Assign Internal Table ‘IT_FILE‘ in Function Module, to collect file data in it.

4- Declare Internal table / Work Area for BDCDATA (from Std Structure in SAP)
5- Clear WA_BDCDATA and assign SCREEN PROGRAM, SCREEN NUMBER and DYNBEGIN which you can extract using recording from t-code: SHDB.
6- Clear WA_BDCDATA Again and Assign FIELDNAME and FIELDVALUE in it from Work Area field ‘WA_FILE- Field’ and APPEND to ‘IT_BDCDATA’ for all fields.
7- Then call transaction from syntax
Use Syntax
MESSAGES INTO IT_BDCMSGCOLL.>

– REFRESH IT_BDCDATA.

The possible values for V_MODE will be,

A – DISPLAY ALL SCREENS

E – DISPLAY ERRORS

N – NO SCREENS

Below is the Screen shot explaining the above logic for BDC to collect data from external file and insert in to SAP Table using pertaining T- Code.

E rror Message Handling

As discussed above, in BDC creation using Online/Real time Processing the error handling is explicit. Below is the logical Steps to create ABAP Code for error Messages in SAP

a- Type Manual Code inside Loop for Error Using Message table T001 for Message Type and Message Number from IT_BDCMSGCOLL.

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

b- Call Functional Module

OR
c- Using Method (Class) display(it_bdcmsgcoll)>.

2- Session Method Data Upload (using t-code SM35)

Session Method and Call Transaction Method both works on same Principle i-e; Via Screens & Screens Fields Repeatedly.

Session is like Folder in which we collect data from file then execute/ upload it to SAP data base via Batch Input Method using t-Code SM35.

There are three steps to upload data through BDC Session Method, those are,

At Last, you execute the SESSION from t-code SM35, as discussed before all the error log are saved by the session, no need to write code.

ABAP Code for the Reference.

*INITIALIZATION.
* LOOP AT SCREEN.
* IF SCREEN-NAME =’P_SNAME’.
* SCREEN-INPUT = 0.
* MODIFY SCREEN.
* ENDIF.
* ENDLOOP.

*********************************************************
*RAIO BUTTONS PROGRAMING FOR V_MODE ” A – DISPLAY ALL SCREENS
” E – DISPLAY ERRORS
” N – NO SCREENS

* IF SY-SUBRC = 0.
* WRITE : / ‘CHEQUE’,WA_FILE-CHECT,’FOR PAYT DOC’,WA_FILE-VBLNR,’IS ASSIGNED.’ COLOR 1.
* ELSE.
* WRITE : / ‘CHEQUE’,WA_FILE-CHECT,’TO PAYT DOC’,WA_FILE-VBLNR,’IS NOT ASSIGNED.’ COLOR 3.
* ENDIF.

***ERROR HANDLING USING METHOD/CLASS ‘FORMAT_MESSAGE’***

**LOOP AT IT_BDCMSGCOLL INTO WA_BDCMSGCOLL.
**Cl_demo_output+>display(it_bdcmsgcoll).
**
**ENDLOOP.

Источник

Создание диалоговых программ в системе SAP R/3

Экраны SAP R/3

ЭКРАНЫ ВЫБОРА

Параметр определяет поле, которое может использоваться программой-отчетом как обычное поле, определенное с помощью оператора data. После ввода значения в поле ввода данного параметра на экране выбора и нажатия кнопки EXECUTE, это значение заносится в соответствующее поле, определенное параметром.

При вводе значений параметров или составных критериев выборки количество извлекаемых данных автоматически не ограничивается. В предложении WHERE оператора SELECT соответствующие параметры следует размещать так же, как и обычные поля.
Поскольку параметры выполняют роль интерфейсных объектов экрана выбора, то в синтаксисе определения parameters и data есть небольшие различия:
1) Начальное значение параметра определяется с помощью дополнения default (а не value, как для data). Однако это дополнение не является обязательным.
2) Структурированные параметры не поддерживаются (типа записей, задаваемых с помощью операторов BEGIN OF / END OF).
3) Параметры типа C длиной 1 могут выводиться на экран в виде переключателя, если использовать дополнение as checkbox в определении параметра. При выборе поля значение параметра будет равно Х, в противном случае он будет пустым.
Каждый параметр связан со своей определяемой на естественном языке меткой (или названием поля), которая отображается на экране перед полем ввода. Эту метку можно изменить или перевести на другой язык без изменения исходного текста программы.
СОСТАВНЫЕ КРИТЕРИИ ВЫБОРКИ
Составные критерии выборки (SELECT-OPTIONS) обычно применяются при задании сложной выборки (например, диапазона значений, исходного шаблона или их сочетания). Стандартная форма SELECT-OPTIONS на экране выбора имеет 2 поля ввода, позволяющих задать единственное значение или интервал.
Пример:

ABAP/4 автоматически сохраняет введенную информацию во внутренней, стандартно структурированной таблице, которая может использоваться в динамическом предложении WHERE оператора SELECT.

Задание составного критерия выборки в диалоговом окне
COMPLEX SELECTIONS:

Внутренняя таблица, соответствующая составному критерию SELECT-OPTION, всегда состоит из 4 столбцов: SIGN (признак), OPTION (операция), LOW (нижнее значение), HIGH (верхнее значение).
Каждая строка этой таблицы соответствует определенному условию выборки. Поля LOW и HIGH содержат используемые при сравнении значения и связаны с соответствующими полями таблицы: они должны иметь одинаковые тип и длину. Поле HIGH применяется только для задания диапазона значений, в противном случае оно сохраняет начальное значение.
При выполнении программы внутренняя таблица, связанная с составным критерием, автоматически заполняется данными, введенными пользователем на экране выбора. Однако ее можно заполнить значениями по умолчанию до отображения этого экрана, а также работать с ней, как с обычной таблицей (например, проверять введенные пользователем данные на корректность или правдоподобность).
Выполнение таких проверок лучше всего организовать на основе событий экрана выбора. Если какое-нибудь условие проверки не удовлетворяется, на экран выбора можно вывести соответствующее сообщение, после чего обновить экран и разрешить новый ввод данных в поля.
СОБЫТИЯ ЭКРАНА ВЫБОРА
В ABAP/4 предусмотрены события, обеспечивающие задание значений на экране выбора и присвоение критерию выборки этих значений:
INITIALIZATION в?» выполняется сразу после начала создания отчета и до обработки значений, заданных на экране выбора
AT SELECTION-SCREEN OUTPUT в?» выполняется до того, как будет выведен экран выбора
AT SELECTION-SCREEN ON P/S в?» выполняется после задания пользователем параметра p или составного критерия s
AT SELECTION-SCREEN в?» выполняется после ввода всех критериев выборки
Событие INITIALIZATION происходит только однажды, а событие AT SELECTION-SCREEN OUTPUT в?» при каждом нажатии Enter, если экран выборки активен. После обработки всех перечисленных событий ABAP/4 продолжает выполнение события START-OF-SELECTION, обрабатывая самый верхний уровень вложения выборки из базы данных.
События AT SELECTION-SCREEN и AT SELECTION-SCREEN ON P/S рекомендуется использовать для проверки введенных пользователем данных на допустимость значений и правдоподобие.
Каждое сообщение об ошибке, получаемое по событию AT SELECTION-SCREEN, немедленно останавливает программу-отчет и обновляет экран выбора. При этом можно изменить все критерии выборки. Если используется дополнение on p/s, то после события разрешается ввод только данного параметра или составного критерия. Текст сообщения об ошибке создается или изменяется двойным щелчком мыши на поле текста и хранится в системной таблице, содержащей информацию, определяемую на естественном языке.
Для ускорения получения отчета следует запретить неограниченные запросы к базе данных. Во избежание этого в составном критерии можно указать количество строк, которое следует использовать в предложении WHERE оператора SELECT.
Если внутренняя таблица, содержащая составной критерий, пуста, а пользователь не указал никакого критерия, то желательно выводить на экран сообщение об ошибке.
Пример:

ЭКРАНЫ ДИАЛОГА

Логика ДинПро (Dynamic Programs)

Содержимое полей в рабочей области экрана передается соответствующим элементам в программе в модулях PAI или считывается из элементов программы в модулях PBO.

Основной синтаксис описан в таблице.
Ключевое слово Назначение
MODULE Вызывает диалоговый модуль в ABAP программе
FIELD Обозначает точку переноса содержимого поля
ON Используется в сочетании с FIELD
VALUES Используется в сочетании c FIELD
CHAIN Стартует цепочку обработки полей
ENDCHAIN Завершает цепочку обработки полей
CALL Вызывает подэкран
LOOP Цикл обработки экранной таблицы
ENDLOOP Завершает цикл обработки экранной таблицы
Пример:

Обработка событий на экране осуществляется через обработку OK_CODE в модуле PAI (POH, POV).

Читайте также:  рама 20 дюймов на какой рост и вес

Вызов ABAP диалоговых модулей

Для проверки нескольких полей используется следующий синтаксис в логике ДинПро:

Следующий модуль вызывается по user-command CS и function type S. Обычно такой код присваивается клавише F2 и так же срабатывает по mouse double-click. Модуль обрабатывается в порядке присутствия во Flow Logic и не пропускает проверок по input.

MODULE AT CURSOR-SELECTION

ПЕРЕДАЧА ДАННЫХ МЕЖДУ ABAP ПРОГРАММАМИ И ЭКРАНАМИ

ТИПЫ СООБЩЕНИЙ ОБ ОШИБКАХ

Технологии расширений функциональности системы SAP R/3

SAP-расширения (User Exits, Customer Exits)

Персонализация
Роли:
Варианты пользователя
Модификация
Нерегистрируемые модификации
Вспомогательные модификации
User exits
Расширение
ABAP dictionary
— Таблицы
— Field exit
Customer exits
-Function module exits
— Menu exits
— Screen exits
Business transaction events
Business Add-Ins
Стандарт R/3 (бизнес приложения)
Доработки

Транзакция SMOD

SE80. Имена Include c User exits содержат 8 позиций и содержат ‘FZ*’.

РЕКОМЕНДАЦИИ ПО ПРОГРАММИРОВАНИЮ USER EXITS

Для написания и первоначальной отладки кода используйте конструкцию

Вместо ‘USER’ должно быть имя пользователя под которым вы входите в SAP.

User exits типа в?? INCLUDEs в?? (которые включены в стандартную транзакцию) активизируются сразу после сохранения. Поэтому берегите нервы зарубежных партнеров и наших коллег, которые работают с этой транзакцией, и проверяйте ваш код, а только потом сохраняйте.
User exits типа в??User exits которые используют таблицыв?? надо обязательно активировать иначе ваши последние изменения не будут работать.
Программную точку останова в программе можно сделать так:

Самая информативная утилита для нахождения дополнительной информации это отладчик. В нем можно найти необходимые структуры данных и поля. Проверить область видимости и т.п.

В случае необходимости передать значения между user exit- ми (они часто имеют разные области видимости) используйте механизмы EXPORT в?»IMPORT.

ТРАНЗАКЦИОННЫЕ МОДИФИКАЦИИ

Загрузка данных в систему R/3

Работа с файлами

РАБОТА С ФАЙЛАМИ, НАХОДЯЩИМИСЯ НА СЕРВЕРЕ ПРИЛОЖЕНИЙ

Применение файлового интерфейса включает в себя три основных действия:
открытие файла;
запись или чтение;
закрытие файла.
Для открытия файла, принадлежащего файловой системе на сервере приложений, используется оператор OPEN DATASET, затем указывается имя файла. Для того, чтобы пользователь мог задать имя файла на экране выбора, предусмотрен параметр FILENAME, имеющий атрибут LOWER CASE, поскольку записи пути доступа и имени файла в некоторых ОС чувствительны к регистру.
Если файла с таким именем не существует, то команда OPEN DATASET создаст его. При наличии такого файла впоследствии в него будет записана новая информация. Если к содержимому файла требуется только дописать данные, следует использовать команду OPEN DATASET с дополнением FOR APPENDING. Тогда новые данные будут записаны после существующих.
Дополнение FOR OUTPUT команды OPEN DATASET означает, что данный файл открывается программой ABAP/4 для записи в него выходных данных (результатов). Дополнение IN TEXT MODE сообщает программе, что данные в файле будут представлены в виде строк текста. Разрешается использовать принятое по умолчанию дополнение IN BINARY MODE (в двоичном виде). Двоичные записи применяются для неструктурированных и необработанных данных, которые невозможно интерпретировать при стандартных операциях ввода/вывода. Так, исполняемые программы всегда передаются в виде двоичных кодов.
Если файл недоступен (например, отсутствует заданный путь доступа или соответствующие права доступа к файлу), система возвращает ненулевой код завершения оператора в переменной SY-SUBRC. Текст сообщения об ошибке передается в поле MSG_TEXT, которое следует за дополнением MESSAGE.
Чтобы переслать данные в файл, используется оператор TRANSFER.
Несмотря на то, что система закрывает все открытые программой файлы после ее исполнения, в программировании считается хорошим тоном после завершения работы с файлом закрывать его в явном виде с помощью оператора CLOSE. После того, как файл закрыт и открыт вновь, каждая последующая операция TRANSFER и READ DATASET (запись или чтение) выполняется с начала файла.

Чтение содержимого файла выполняется оператором READ DATASET. Убедиться, что структура данных при записи и чтении файла одинакова, можно, обратившись к Dictionary и используя для обеих программ общие файлы include, содержащие определения структур данных.

ИСПОЛЬЗОВАНИЕ ФАЙЛОВОЙ СИСТЕМЫ РАБОЧЕЙ СТАНЦИИ

В небольшой системе R/3 персональный компьютер (или рабочая станция) одновременно является и сервером представления данных, и сервером приложений. В этом случае пользователь всегда работает с файловой системой ПК и вполне может обходиться рассмотренными ранее командами записи и чтения файла.

В крупных системах сервер приложений обычно устанавливается на другом компьютере. Поскольку исполнительная система ABAP/4 работает на сервере приложений, программные команды transfer и read dataset будут работать с файлами файловой системы сервера приложений. Если же разработчик хочет использовать файловую систему ПК и его сервер представления данных, то следует применять специальные функции ABAP/4:
WS_DOWNLOAD (DOWNLOAD) в?» для сохранения внутренней таблицы в виде файла на сервере представления данных.
WS_UPLOAD (UPLOAD)в?» для загрузки размещенного на сервере представления данных файла во внутреннюю таблицу
Пример:

Технология пакетного ввода (Batch Input, Call Transaction)

Один из принципов системы SAP R/3 в?» ввод информации в систему через бизнес-транзакции, а не путем прямой записи в таблицы базы данных. При этом сохраняется непротиворечивость информации, т.к. база данных обновляется системой, а не напрямую программами разработчика. Для этого в системе SAP R/3 предусмотрена возможность автоматического ввода больших объемов информации (например, из внешнего файла или выполнения повторяющихся действий оператора при обработке значительных объемов информации) через бизнес-транзакции системы.

Технология BAPI

BAPI в?» это строго определенный интерфейс для процессов и данных для прикладных приложений, реализованный в качестве методов объектов.
Бизнес-объекты формируют основу для связи на высоких (удобных для пользователя) уровнях сети. Например, они позволяют системе R/3 функционировать через Интернет или осуществлять связь с программами на настольных ПК. Целью объектно-ориентированной SAP-стратегии является интеграция объектов на хозяйственном, а не на чисто техническом уровне.
Бизнес-объекты:
создают основу для четко определенной связи между системами клиент/сервер;
ориентированы на хозяйственную деятельность: например, существуют такие объекты, как «дебитор», «заказ» или «сотрудник»;
предоставляют бизнес-функции (методы). Например, для объекта «дебитор» существуют такие методы, как «Создание дебитора» и «Просмотр дебитора». Названия таких методов позволяют программировать понятно и, следовательно, без ошибок;
управляются централизованно в системе R/3, в репозитарии бизнес-объектов (РВО).
Интерфейсы BAPI (Business Application Programming Interfaces) являются функциональными интерфейсами. Они используют бизнес-функции, определенные для бизнес-объектов. Интерфесы BAPI можно вызвать как из системы R/3, так и вне ее.
Для поиска BAPI используется транзакция BAPI.

Источник

Сказочный портал