SAP - Сторінка 8 - Іван Болховітінов

Цікавий випадок самообману у транзакції FF67

Дано:

Є транзакція FF67, яка має спеціальне віконце для значень “за замовчуванням”. Там зокрема є важливе поле – “Вигляд подальшої обробки”. Для правильної роботи за шаблоном має стояти значення режиму 4.

Є дурні користувачі, яким якщо давати такі речі в руки, можна отримати різні числа на виході.

Спостерігаю наступне вирішення цієї проблеми:

Ти не мусиш писати говнокод…

сторінка

Це страшне слово "розмежування"...

До питання, чому іноді корисно почитати документацію.

За страшними словами "розмежування вручну" та "об'єкт розмежування" насправді ховається лише наворочений механізм на кшталт довгострокових проводок.

Варіанти екрану вибору

Якщо транзакція є звітом, вона має екран вибору.

І якщо параметрів багато, і ви часто заповнюєте їх однаково, то варто запам'ятати це у вигляді шаблону. Ось цей шаблон і називається варіантом.

А тепер – у подробицях…

Включення історії змін до власних документів

Є два основні напрямки відстеження історії зміни будь-якого об'єкта.

1. Історичність даних

У цьому випадку ми приймаємо за основу, що нам цікаво знати стан об'єкта на будь-яку дату: рік тому, місяць тому, вчора, сьогодні. І знання такої інформації важливе для здійснення бізнес-операцій.

Реалізується в БД за допомогою включення дати до ключа таблиці (BEGDA/ENDDA) і написання багатьох рядків на ABAP, розрулювання цього добра на екранах.

При цьому передбачається, що користувач може керувати діапазонами актуальності даних.

Управліннякадрами практично повністю використовує цей підхід, все залежить від дати (ім'я, посада, організаційне присвоєння, документи).

2. Журналування змін

У цьому випадку ми беремо за основу, що нас цікавить лише поточний стан об'єкта, але ми хочемо “про всяк випадок” мати історію зміни.

Історія така потрібна насамперед для контролю над діями користувача. Як правило, її використовують тільки як докази, при розборі проблем. Інформація про попередній стан об'єкта не може використовуватись у бізнес-операціях.

При цьому передбачається, що користувач не може керувати журналуванням - воно проводиться непомітно і завжди. За бажанням користувач може переглянути історію, вибравши відповідний пункт меню.

Основний підхід передбачає використання чотирьох додаткових полів: (ERNAM, ERDAT, AENAM, AEDAT). Справа зовсім нехитра. Однак нас може зацікавити і характер змін (список всіх змін, включаючи попередні значення полів).

Саме такий підхід використовується практично у всіх основних даних ERP (ОС, Рахунок, Дебітор, Кредитор), тому є якийсь стандартний механізм SAP, який використовується скрізь, де це необхідно.

І саме про нього йтиметься під катом.

Розробка звітів у SAP на ABAP – стандартна схема

Побажання початківцям абаперам на ниві вирощування звітів.