Удаление продуктивных данных или SARA в действии

Так принято в ERP, что практически очень сложно что-то удалить навсегда. Можно создать бухгалтерский документ или карточку основного средства, а вот удалить их система не дает: бухгалтерский документ можно только сторнировать, а карточку основного средства можно только списать.

По разным обстоятельствам очень редко возникает необходимость в зачистке оперативных продуктивных данных. Такая необходимость может быть регулярной (так называемая Архивация) или иррегулярной (например: удаление тестовых данных при подготовке к продуктивному старту).

Для полной очистки оперативных данных (по БЕ) предусмотрены специальные программы в модулях финансовой бухгалтерии FI (транзакция OBR1) и основных средств AM (транзакция OABL). Эти программы действуют очень грубо и без оглядки на остальные модули, и к тому же не могут заменить саму функциональность Архивации. Но вот в остальных модулях (например: MM, FM) такой возможности нет. Единственный легальный способ удалить оперативные данные в прочих модулях или удалить их на основании утверждённых сроков жизни – это Архивация.

Архивация – это процесс выборочного переноса записей из оперативной базы данных во внешние файлы.

В реальной жизни архивация нужна для систем с долгим сроком продуктивной жизни. Для каждого вида документов есть свой период актуальности, и если система ERP работает уже лет пять, то разумно предположить, что конкретные документы пятилетней давности нам уже не нужны для работы. Конечно же, мы должны сохранить некоторые общие промежуточные итоги того периода в самой системе, например сальдо счетов. А если кроме этого у вас необходимые данные в том или ином виде выгружаются в систему класса BI – то тем лучше.

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

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

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

Эта статья покажет процесс архивации на примере модуля управления материальными запасами (MM).

Приступим!

Шаг первый: Списание остатков

Требуется списать все остатки на всех складах.

В моём случае это выполняется при помощи самописной Z-программы.

Схема программы простая:

1. Определить открытый период на заводе. Тут всё просто: таблица MARV

2. Определить свободный запас. Тут чуть сложнее: таблица MCHB (для материалов с учётом по партиям) и MARD (для материалов без учёта по партиям).

3. Списать весь свободный запас. Ну и есть функциональный модуль BAPI_GOODSMVT_CREATE

Требуется немного программирования; красивая, безопасная и удобная обёртка не помешает.

Шаг второй: Настройка длительности жизненного цикла к нужным объектам

Из транзакции SARA можно перейти к конкретным пунктам настройки для каждого объекта:

Меню пользовательской настройки

В этом меню нам может иногда пригодиться третий пункт (там настраиваются тестовые и продуктивные варианты).

Основное здесь – это настройка сроков жизни в последнем пункте этого меню.

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

Список таблиц к объекту 

Знание таблиц не помешает для контроля, да и в качестве общих сведений тоже полезно.

Эти настройки можно также найти разрознено в SPRO или общим списком напрямую, воспользовавшись уличной магией (смотри V_159R, V_169R и прочие ракурсы):

 Настройка жизненного цикла для архивации

Здесь не без вариаций, таблички не совсем однотипные. Настройка для материальных документов (MB01/MIGO) выгляди так:

Настройка к материальным документам

Решёточки – означают все виды операций (именно в данном случае).

Настройка для фактур уже немного другая:

Настройка к фактурам

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

Не перечисленные в настройке ОрганизационныеЕдиницы и ВидыОпераций/ВидыОбъектов не будут архивироваться (бесконечный срок жизни).

Делаем настройки, переносим – ничего сверхординарного.

Шаг третий: Зачистка материальных документов

Здесь вступает в дело основная транзакция процесса архивации – SARA. Это центральная транзакция архивирования.

Начинаем идти по принципу “снизу-вверх”, сначала вычищаем материальные документы – объект MM_MATBEL.

Основной экран архивации

К этому объекту надо будет выполнить две первых операции.

Сначала запускаем операцию “Запись” – для формирования внешних файлов.

Операция Запись

Создаём варианты. Их понадобится как минимум два: один тестовый и один продуктивный.

Вариант к программе записи

В первый раз, безусловно, запускаем тестовый прогон. Внимательно смотрим результат:

Результат прогона Записи

Можно пройти по табличкам, убедиться в правдоподобности цифр.

И после этого операцию следует повторить в продуктивном режиме.

Семь раз отмерили? Переходим к этапу “Удаление”.

Операция Удаление

Удалить можно только то, что прочитали. Выбираем архив – и понеслась! Только сначала в тестовом режиме,а затем – в продуктивном.

Результат прогона Удаления

Остаётся только посмотреть по таблицам в SE16 и убедиться лично (на всякий пожарный, для успокоения).

Шаги четвёртый и последующие

Затем процесс повторяется для прочих объектов, имеющих отношение к модулю MM. Здесь не обойдётся без отклонений от основного сценария.

Условная последовательность выметания (на основе однократного опыта):

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

Мелкие засады

Без мелких засад тут может и не обойдётся. Например, временно сохранённые документы фактур не попадают в архивацию, а можно ли их удалить из интерфейса при удалённом заказе — вопрос. Незавершённые заказы на поставку могут сильно сопротивляться попыткам их заархивировать (особенно если там ПМ/ПС не ровно), а выровнять ПМ/ПС (например: ошибка двойного фактурирования) не есть простая задача при удалённых документах.

Кроме SARA могут пригодиться программы RM06EW30 (альтернативная прямая архивация) и RWPOB001 (закрытие заказов на поставку). Кроме этого, не стоит забывать о возможностях массовой обработки заказов на поставку (MEMASSPO) и контрактов (MEMASSCONTRACT).

Опубликовано 30.12.2013 в 14:10 · Автор ivan · Ссылка
Рубрики: ABAP

2 комментария

Подписаться на комментарии по RSS

  1. Написал(-а) DMT
    29.03.2014 в 08:36
    Ссылка

    А как же MMDE? Удаляет материалы без архивирования.

  2. Написал(-а) ivan
    29.03.2014 в 08:48
    Ссылка

    Ну во-первых, эта транзакция удаляет все материалы. А иногда надо выборочно, например только на некоторых заводах.
    Ну а во-вторых, эта транзакция не удаляет всё остальное — контракты, заказы, фактуры, документы.

Подписаться на комментарии по RSS

Написать комментарий