Диалоговые рабочие процессы обрабатывают полученные документы IDoc. Следовательно, обработка документов IDoc в целевой системе требует присутствия не только обычных диалоговых рабочих процессов для диалоговых пользователей, но и процессов для функций ALE. Можно сконфигурировать параллельную или последовательную обработку полученных документов IDoc. Для параллельной обработки необходимо создать дополнительные диалоговые процессы в количестве, соответствующем среднему числу документов IDoc, которые получаются параллельно. Последовательная обработка требует меньше диалоговых рабочих процессов, но только один документ IDoc может обрабатываться в данный момент, так что может возникнуть затор и падение производительности на получающей стороне. При этом также исключается возможность обработки одного документа IDoc раньше другого, если это понадобится. Техническая команда должна обсудить преимущества и недостатки каждого метода с подразделениями пользователей, а затем создать подходящее техническое решение. Кроме распределения нагрузки между инстанциями SAP R/3, при создании групп в определении соединения RFC может быть полезно в некоторых ситуациях использовать отдельную инстанцию SAP R/3 для обработки документов IDoc. Конечно, такое решение требует анализа стоимости и эффективности, так как для его реализации нужно дополнительное оборудование.
13.3. Перенос данных
Если данные унаследованной системы должны быть перенесены в новое бизнес-решение как часть проекта реализации, то гибкая и высокопроизводительная поддержка потребуется для следующих задач:
► Преобразования крайне изменчивых форматов данных в формат, который может читать SAP R/3, когда данные будут извлечены с помощью инструментов унаследованной системы.
► Переноса преобразованных данных в новую систему SAP R/3, определяя, какие данные должны отображаться в какие поля таблиц и не требуется ли дополнительная настройка при условии различных структур данных в новой и унаследованной системах.
► Обеспечения полного переноса
Используемый тип переноса для миграции внешних данных в систему SAP R/3 зависит от приложения, которое их получает. Поскольку для каждого прикладного компонента важны различные данные, большинство приложений содержит свои собственные программы переноса данных, которые должны использоваться. Кроме этого фактора, выбор определенной методики переноса данных зависит от важных вопросов: от количества данных для переноса и от того, как часто они будут переноситься (один раз или постоянно).
Методы переноса данных
SAP R/3 поддерживает различные методы переноса данных: пакетный ввод, операция вызова, прямой ввод и перенос с помощью BAPI. Если приложение не имеет своего собственного интерфейса для переноса внешних данных (этот случай является исключением), то можно использовать запись транзакции с пакетным вводом или транзакцией вызова для создания данных, которые будут обрабатываться.
13.3.1. Пакетный вводПроцедура пакетного ввода является стандартным подходом, который давно используется в среде SAP для переноса данных в систему SAP R/3, имитируя диалог пользователя. Согласованность данных гарантируется, так как процедура включает все транзакционные проверки. Перенос данных происходит в два шага:
1. Создание сеанса пакетного ввода, который содержит все необходимые данные (транзакции, экраны, поля и значения полей)
2. Обработка сеанса в системе. Выполнение сеанса пакетного ввода импортирует данные в систему SAP R/3.
Сеансы пакетного ввода
Обычно можно использовать предварительно определенные программы для форматирования внешних данных и переноса их в сеансе пакетного ввода. В исключительных случаях может понадобиться разработка своей собственной программы пакетного ввода. Программа пакетного ввода читает данные (они должны быть представлены в форме, которую может обработать SAP R/3), форматирует и записывает их в сеансе пакетного ввода. Этот сеанс моделирует диалоговый ввод кодов транзакции и связанный ввод данных. Фактически значения, которые были прочитаны, присваиваются полям экрана каждой транзакции. Структура сеанса пакетного ввода описывает используемые поля, которые возникают из присвоенных транзакций и применяемых в них структур SAP.
С помощью этой методики процедура пакетного ввода реализует перенос данных для каждого диалогового экрана DAP R/3, включая связанные с ними меры безопасности для сохранения целостности. Это применимо как к стандартным программам SAP R/3, так и к специальным пользовательским разработкам в системе SAP R/3.
Автоматическая запись
Автоматическая запись транзакций особенно полезна. Соответствующие структуры сеанса пакетного ввода и программа пакетного ввода могут генерироваться автоматически из записанных транзакций. Автоматическая запись начинается с помощью ►Transaction recorder. После запуска программа записи транзакции выполняет транзакции, которые позже будут перенесены с помощью процедуры пакетного ввода. Сеансы можно генерировать из записей и корректировать их необходимым образом. Затем на следующем шаге можно сгенерировать и при необходимости подкорректировать соответствующую программу АВАР. Такой подход сокращает ручную работу по программированию, которая требовалась ранее.
Когда экранные поля присвоенных транзакций сеанса пакетного ввода были заполнены, сеанс пакетного ввода помещается в очередь пакетного ввода. Сеанс может обрабатываться из очереди: транзакции, которые он содержит, выполняются в фоновом режиме, и данные обрабатываются. База данных использует таблицу APQD для хранения сеанса; таблица одновременно реализует очередь пакетного ввода.
Для выполнения сеанса пакетного ввода имеется два метода:
► Запуск вручную с помощью ►Batch Input; выполнение в диалоге ил в фоновом режиме.
► Автоматический запуск с помощью программы АВАР RSDBCSUB
Для системного администратора мониторинг процессов пакетного ввода является одной из важнейших задач. Во время процедуры пакетного ввода большие объемы данных импортируются в базу данных SAP R/3 в относительно короткое время. Соответственно, системный администратор должен уделять повышенное внимание требуемой в базе данных памяти, увеличенному числу операций записи и возникающему росту объема данных, содержащихся в журналах базы данных. Если планируется перенос данных с помощью пакетного ввода, системный администратор должен быть включен в процесс планирования.
Во время разработки программы пакетной обработки необходимо отметить длину транзакции. Поскольку программы пакетной обработки выполняется в фоновом режиме, на экране не происходит никаких изменений, поэтому с точки зрения базы данных не происходит фиксации изменений (commit). Следовательно, необходимо контролировать длину транзакции с помощью явной фиксации изменений в программе. Доступ к анализу потоков выполнения пакетного ввода и запуск выполнения выполняются с помощью ►Batch Input (см. рис. 13.16). Для анализа есть различные представления. Технические вопросы программы и проблемы содержимого можно разрешить при тесном сотрудничестве между системным администратором, отделами пользователей и разработчиками.
Иногда успешно завершенные сеансы должны удаляться из базы данных, чтобы освободить пространство. Для этого можно использовать отчет RSBDCREO для фоновой обработки. Этот отчет должен выполняться ежедневно как часть стандартных заданий Basis (см. главу 9).
Рис. 13.15. Основной поток данных в процедуре пакетного ввода
Рис. 13.16. Доступ к анализу пакетного ввода
13.3.2. Прямой вводПри прямом вводе данные в файле переноса данных подвергаются всем проверкам, которые будут происходить при диалоговом вводе; однако он затем переноситься прямо в систему SAP R/3.
Строго говоря, метод прямого ввода является усовершенствованной процедурой пакетного ввода. Пакетный ввод сначала пересылает данные в сеанс, который присваивает их соответствующим полям экрана; этот шаг не происходит при прямом вводе. Вместо этого метод прямого ввода использует модули функций, доступные в системе для пересылки данных. Разработчик должен затем вызывать соответствующие модули функций. При применении метода пакетного ввода проверка согласованности данных обусловлена использованием экранной технологии; в процедуре прямого ввода эти проверки согласованности выполняются соответствующими модулями функций.
Программы прямого ввода могут запускаться просто для целей тестирования. В этом случае никакой журнал не создается, а повторное выполнение в случае ошибки выполнить невозможно. Соответственно для производственных целей пересылка данных с помощью прямого ввода должна контролироваться в фоновом режиме с помощью ►Direct input administration.