ERP системы. Лекция 3 ERP. Лекция 3 Архитектура ядра sap erp
Скачать 2.34 Mb.
|
3.0.5. Понятие SAP-транзакции.Бизнес-транзакции являются функциональными единицами обработки, которые вносят непротиворечивые изменения в базу данных, имеющие отношение к хозяйственной операции (рисунок 3.4). Типичными примерами являются проводки по кредиту и дебету, которые имеют смысл только в том случае, если выполняются совместно, или создание заказа и резервирование соответствующего материала. SAP-транзакция рассматривается как ряд согласованных, взаимосвязанных шагов диалога, где шаг диалога пользователя представлен экраном. Рис. 3.4. Понятие SAP-транзакции В системе SAP шаг диалога начинается с обработки данных, введенных пользователем (обработка после ввода (Processes After Input, PAI), и с обработки следующего экрана (обработка перед выводом (Processes Before Output, PBO)); система затем получает следующий экран, обработанный пользователем, и еще раз анализирует и обрабатывает данные ввода на этом экране. Шаги диалога для пользователя и системы выполняются асинхронно. Для системы шаг диалога обычно состоит из двух частей: PBO- и PAI- модулей. 3.0.6 Виды блокировок в системе SAPПри диалоговой обработке одна транзакция может использовать несколько диалоговых рабочих процессов. Асинхронное обновление используется для обработки части диалога транзакции и соответствующего обновления базы данных в разных рабочих процессах и, возможно, даже на разных хостах. Механизмов блокирования в современных СУРБД обычно недостаточно для обработки объектов коммерческих данных (например, заказы клиента), которые влияют на несколько таблиц базы данных (рисунок 3.5). Для координации нескольких приложений, одновременно обрабатывающих один и тот же бизнес-объект, система R/3 предоставляет свое собственное управление блокировками, контролируемыми отдельным процессом. Рис. 3.5. Блокировки в системе SAP Чтобы в системе могли выполниться запросы на блокировку необходимо сначала определить в ABAP1-словаре объект блокирования. Объект блокирования содержит таблицы, записи которых должны быть заблокированы. Объект блокирования состоит из первичной таблицы. С помощью отношений по внешнему ключу можно также определить дополнительные вторичные таблицы. 3.0.7. Асинхронное обновление.Различают элементарные шаги обработки (LUW) в системе SAP и эти же шаги в системе базы данных (SAP-LUW/DB-LUW). Рис. 3.6. Асинхронное обновление Примечание: транзакция соответствует логической единице обработки (LUW). DB-LUW либо полностью выполняется, либо обновление данных не происходит (выполняется откат). DB - LUW перемещает базу данных из одного согласованного состояния в другое. Это означает, что данные должны быть логическими и корректными, как до, так и поле LUW; это справедливо, как для DB - LUW, так и SAP - LUW. Т.к. один шаг диалога обрабатывается одним рабочим процессом, поэтому DB-LUW не может длиться дольше этого шага диалога. SAP-LUW состоит из нескольких диалоговых шагов, т.о. в процессе выполнения обрабатываются несколько DB-LUW. Запуск приложения SAP является также и началом SAP-LUW. Как было описано выше, каждый шаг диалога в SAP-LUW обрабатывается одним рабочим процессом, как и в случае с DB-LUW. Каждое изменение в базе данных выполняется в своем собственном DB-LUW. Асинхронное обновление, обычно используемое в SAP - LUW, позволяет системе временно накопить изменения, выполненные пользователем в отдельных диалоговых шагах, а затем при завершении фазы диалога, внести изменения в базу данных посредством отдельного рабочего процесса обновления (рисунок 16). Для обеспечения непротиворечивости данных итоговое изменение базы данных (включающее в себя каждое «изменение шага диалога») выполняется только в одном заключительном DB - LUW. 3.0.8. ABAP-программы длительного выполнения.Рис. 3.7. Блокировка диалоговых процессов программами длительного выполнения В диалоговом режиме в системе SAP нельзя выполнять программы с большим временем выполнения, т.к. тогда эти рабочие процессы будут недоступны другим пользователям (рисунок 3.7). Оставшимся диалоговым рабочим процессам придется обрабатывать намного большее количество пользователей, что скажется на значительном снижении времени реакции системы. В системе существует специальный параметр «максимальное время выполнения диалога» (значение по умолчанию 300 сек), который устанавливает максимальное время шага диалога, разрешенное для нахождения в диалоговом рабочем процессе. Если это время превышено более чем вдвое, шаг диалога прерывается и запущенная транзакция завершается с ошибкой. Это позволяет администратору гарантировать то, что операции, требующего длительного времени выполнения, будут выполняться пользователями только в фоновых рабочих процессах, которые и необходимо использовать для таких типов операций. 3.0.9. Обработка в фоновом режиме Фоновые рабочие процессы предназначены для периодических заданий, таких как реорганизация данных или автоматический перенос данных из внешней системы в систему SAP, а также запуска программ длительного времени выполнения (рисунок 3.8). Рис. 3.8. Обработка в фоновом режиме Фоновая обработка планируется в виде заданий. Каждое задание состоит из одного или нескольких шагов (ABAP-отчетов, внешних программ или вызовов других операционных систем), которые обрабатываются в последовательном порядке. Можно также устанавливать приоритеты (от «С» до «A»), чтобы присвоить приоритет определенным заданиям. Обычно обработка задания не начинается сразу же. Вместо этого при планировании задания пользователь определяет время запуска. Иногда может оказаться необходимым запускать задания периодически, например, выполнять задания по управлению системой ежедневно, ежечасно и т.п. |