SAP Учебное пособие по ABAP BDC (пакетная передача данных)

Введение в пакетный ввод

Пакетный ввод обычно используется для передачи данных из систем, отличных от R/3, в системы R/3 или для передачи данных между системами R/3.

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

Сеанс пакетного ввода

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

На заметку

  • BDI работает, выполняя обычные SAP транзакции так же, как это сделал бы пользователь, но транзакция выполняется автоматически.Все проверки экрана и проверка бизнес-логики будут выполняться при использовании пакетного ввода данных.
  • Подходит для ввода большого количества данных.
  • Никакого ручного взаимодействия не требуется

Методы пакетного ввода

SAP предоставляют два основных метода переноса устаревших данных в систему R/3.

  1. Классический метод пакетного ввода.
  2. Вызов метода транзакции.

Классический метод пакетного ввода

В этом методе программа ABAP/4 считывает внешние данные в SAP Система и сохраняет в сеансе пакетного ввода.

После создания сеанса вы можете запустить сеанс для выполнения SAP сделка в нем.

Этот метод использует функциональные модули BDC_OPEN, BDC_INSERT и BDC_CLOSE.

Сеанс пакетного ввода может быть обработан тремя способами.

  1. На переднем плане
  2. на заднем фоне
  3. Во время обработки, с отображением ошибки

Если вы хотите протестировать передачу данных, вам следует обрабатывать сеансы пакетного ввода на переднем плане или использовать отображение ошибок.

Если вы хотите выполнить передачу данных или проверить ее производительность, вам следует обрабатывать сеансы в фоновом режиме.

На что следует обратить внимание при использовании классического метода пакетного ввода

  • Syncхроническая обработка
  • Передача данных для нескольких транзакций.
  • Syncсинхронное обновление базы данных.
  • Журнал процесса пакетного ввода создается для каждого сеанса.
  • Сеанс не может быть создан параллельно.

Вызов метода транзакции.

В этом методе ABAP/4 программа использует оператор CALL TRANSACTION USING для запуска SAP сделка.

Весь процесс пакетного ввода происходит онлайн в программе.

Метод транзакции вызова

Указывает на Примечание:

  • Более быстрая обработка данных
  • Асинхронная обработка
  • Передача данных для одной транзакции.
  • Журнал обработки пакетного ввода не создается.

Процедуры пакетного ввода

Процедуры пакетного ввода

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

  1. Анализ устаревших данных. Определите, как передаваемые данные должны быть отображены в SAP Структура. Также обратите внимание на необходимые преобразования типа данных или длины данных.
  2. Создать SAP структуры данных для использования в программах экспорта.
  3. Экспортируйте данные в последовательный файл. Обратите внимание, что формат символов требуется для предопределенных SAP программы пакетного ввода.
  4. Если же линия индикатора SAP Поставляемые программы BDC не используются, создайте собственную программу пакетного ввода. Выберите подходящий метод пакетного ввода в зависимости от ситуации.
  5. Обработайте данные и добавьте их в SAP Система.
  6. Проанализируйте журнал процесса. Для метода CALL TRANSACTION, при котором соответствующий журнал не создается, используйте сообщения, собранные вашей программой.
  7. По результатам анализа процесса исправить и переобработать ошибочные данные.

Написание программы BDC

Вы можете наблюдать следующий процесс написания программы BDC.

  1. Проанализируйте транзакцию(и) для обработки пакетных входных данных.
  2. Определите, какой метод пакетного ввода использовать.
  3. Чтение данных из последовательного файла
  4. Выполните преобразование данных или проверку ошибок.
  5. Сохранение данных в структуре пакетного ввода BDCDATA.
  6. Создайте сеанс пакетного ввода для классического пакетного ввода или обработайте данные напрямую с помощью оператора CALL TRANSACTION USING.

Структура данных пакетного ввода

Объявление структуры пакетных входных данных

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
имя поля Тип Длина Описание
ПРОГРАММА CHAR 8 Пул модулей
ДИНПРО НУМК 4 Номер Динпро
ДИНБЕГИН CHAR 1 Запуск динпро
ФНАМ CHAR 35 имя поля
ФВАЛ CHAR 80 Значение поля

Порядок полей в данных для конкретного экрана не имеет никакого значения.

Очки для заметок

  • При заполнении данных BDC обязательно учитывайте пользовательские настройки. Это особенно актуально для заполнения полей, содержащих числа (например, количество, сумма). Выбор символа группировки чисел определяется пользовательской настройкой. Например: число пятьдесят тысяч может быть записано как 50,000.00 50.000,00 или XNUMX XNUMX в зависимости от пользовательских настроек.
  • Уплотните поле FVAL для полей суммы и количества, чтобы они были выровнены по левому краю.
  • Обратите внимание, что все поля, которые вы заполняете через BDC, при заполнении таблицы данных BDC следует рассматривать как поля символьного типа.
  • На некоторых экранах, когда вы заполняете значения в элементе управления «Таблица» с помощью BDC, вам необходимо отметить, сколько строк присутствует в размере экрана по умолчанию, и кодировать такое количество строк. Если вам нужно заполнить больше строк, вам придется запрограммировать функцию «Page Down», как если бы вы заполняли элемент управления «Таблица» вручную.
  • Количество строк, которые появятся в приведенном выше сценарии, будет зависеть от размера экрана, который использует пользователь. Поэтому всегда кодируйте стандартный размер экрана и заставляйте свой BDC всегда работать со стандартным размером экрана, независимо от того, какой размер экрана сохраняет пользователь.

Создание сеанса пакетного ввода

  1. Откройте сеанс сеанса пакетного ввода с помощью функционального модуля BDC_OPEN_GROUP.
  2. Для каждой транзакции в сеансе:
  3. Заполните BDCDATA значениями для всех экранов и полей, обработанных в транзакции.
  4. Перенесите транзакцию в сеанс с BDC_INSERT.
  5. Закройте сеанс пакетного ввода с помощью BDC_CLOSE_GROUP.

Регистратор пакетного ввода

Регистратор пакетного ввода (Система > Службы > Пакетный ввод > Регистратор) записывает транзакции, введенные вручную, и создает сеанс пакетного ввода, который можно выполнить позже с помощью SM35.

Регистратор пакетного ввода

  • Запустите регистратор пакетного ввода, выбрав кнопку «Запись» на начальном экране пакетного ввода.
  • Имя записи определяется пользователем и может совпадать с именем сеанса пакетного ввода, которое можно создать на основе записи.
  • Введите SAP транзакцию и начать публикацию транзакции.
  • После того, как вы завершили публикацию SAP транзакции, вы либо выбираете «Получить транзакцию» и «Сохранить», чтобы завершить запись, либо «Следующая транзакция» и опубликовать другую транзакцию.
  • После сохранения записи вы можете создать сеанс пакетного ввода из записи и/или создать программу пакетного ввода из записи.
  • Созданный вами сеанс пакетного ввода теперь можно анализировать так же, как и любой другой сеанс пакетного ввода.
  • Программа, созданная с помощью функции записи пакетного ввода, является мощным инструментом для программиста интерфейса данных. Он обеспечивает прочную основу, которую затем можно изменить в соответствии с требованиями заказчика.

Подведем итог этой публикации следующим образом: