Это страшное слово “разграничение” …

К вопросу о том, почему иногда полезно почитать документацию.

За страшными словами “разграничение вручную” и “объект разграничения” на самом деле скрывается всего лишь навороченный механизм по типу долгосрочных проводок.

(далее…)

Варианты экрана выбора

Если транзакция является отчётом, то у неё есть экран выбора.

И если параметров много, и вы часто заполняете их одинаково, то имеет смысл запомнить это в виде шаблона. Вот этот шаблон и называется вариантом.

А теперь – в подробностях…

(далее…)

Включение истории изменений в собственных документах

Есть два основных направления отслеживания истории изменения какого-либо объекта.

1. Историчность данных

В этом случае мы принимаем за основу, что нам интересно знать состояние объекта на любую заданную дату: год назад, месяц назад, вчера, сегодня. И знание такой информации важно для осуществления бизнес-операций.

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

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

Модуль Управление кадрами HCM практически полностью использует этот подход, там всё зависит от даты (имя, должность, организационное присвоение, наименования, мероприятия, отсутствия, документы, счета).

2. Журналирование изменений

В этом случае мы принимаем за основу, что нас интересует только текущее состояние объекта, но мы хотим “на всякий случай” иметь историю изменения.

Эта история нужна в первую очередь для контроля за действиями пользователя пост-фактум. Как правило, её используют только в качестве улик, при разборе проблем. Информация о предыдущем состоянии объекта не может использоваться в бизнес-операциях, хотя я встречал в жизни и такие Z-кейсы.

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

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

Пользователь IVAN 13 декабря 2012 года в 14:15 GMT в объекте ANLA (ключ  001234567890) в таблице ANLA поменял поле TXT50 (Наименование основного средства) со значения «Мой компьютер» на «Просто компьютер».

Именно такой подход используется практически во всех основных данных ERP (ОС, Счёт, Дебитор, Кредитор), поэтому есть некоторый стандартный механизм в SAP, который используется везде, где это необходимо.

И именно о нём пойдёт речь под катом.

(далее…)

Про систему классов

Система классов – общий для всего ERP механизм, расширяющий описательную часть любых объектов SAP. Одно из первых мест, где можно столкнуться с этим – это учёт в MM. В нём механизм классификации используется для классификации самих карточек материалов, так и для классификации партий, если включён учёт по партиям.

Классификация материала

Кратко:

  • К объекту в SAP можно присвоить несколько ракурсов его классификации (как правило один)
  • Каждый ракурс классификации содержит неограниченное количество предварительно настроенных признаков разного рода, и пользователь может вводить туда данные
  • Данные не очень красиво выглядят, не очень красиво хранятся и не очень красиво ищутся
  • Не работает система переносов (классы и признаки являются основными данными)
  • Старая консервативная разработка
  • Кроме пар признак/значения есть управление статусами этой классификации

 

До сегодняшнего дня непосредственно с системой классов не сталкивался. И вот подвернулся повод разузнать это на деле методом проб и ошибок.

А теперь подробнее.

(далее…)

Про неявные преобразования типов

В любом языке неявные преобразования типов всегда были особыми песнями. И у ABAP есть пара фенечек.

И вот пример лесенки:

1. Есть Excel, в котором в ячейке невооружённым взглядом написано:

0

2. Если посмотреть на ячейку вооружённым взглядом, то вместо нуля уже виднеется значение:

-0.0299854666809551

3. Если это значение считывать в ABAP в текстовую переменную, то уже получается:

-2.99854666809551E-02

Предполагаю, что Excel строит из себя умного, и намекает, что числа с таким количеством знаков после запятой следует хранить только с экспонентой

Если присваивать это значение напрямую к типу P, то возникнет ошибка преобразования.

4. Это текстовое значение мы сначала присваиваем типу F и получаем:

-2,9985466680955100E-02

5. А затем уже присваиваем его типу P и получаем

0,03-

TAW12 или Сертификация по профилю

Прошёл сегодня сегодня экзаменационный тест:

C_TAW12_70
SAP Certified Development Associate — ABAP with SAP NetWeaver 7.0

Должен сказать, что это было легко. Нормальный лёгкий мандраж был, но он был обусловлен дороговизной и редкостью самой процедуры.

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

Результаты выше 80% я считаю отличными.

* * *

Как готовиться?

  1. Иметь опыт не менее двух-трёх лет (без этого глупо вообще на сертификацию идти)
  2. Читать специальную литературу (это никогда не помешает)
  3. Пощёлкать примерные вопросы (настроиться на английский и формулировки) и сравнить с ответами. Читать вопросы с ответами – занятие вредное, я считаю.

* * *

Как пройти?

Проходить сертификацию можно в удобное время и в удобном месте, если воспользоваться услугами сетевых центров типа VUE:

  1. зарегистрировался (нужен S-пользователь)
  2. выбрал что, где, когда (курс, место и время)
  3. оплатил картой (дорогое удовольствие)
  4. пришёл, увидел, победил (вся процедура занимает до 3 часов)

Говорят, что сертификат придёт по почте через несколько недель.

Подождём. (UPD. Пришёл)

* * *

Зачем это всё нужно?

Лично для меня это: декларация моей специализации. Среди профессионалов эта бумажка не значит практически ничего. Хотя и не стал бы отрицать, что её нельзя достать как лишний козырь в разговоре с некоторыми руководителями. Просто как в карточной игре – один козырь игры не делает: нужна хорошая рука(набор карт на руках), к которой не помешает умение таким раскладом распорядиться. С другой стороны хорошие, но лишние карты не всегда идут на пользу.

Вот девальвация этой бумаги имеет место быть, получить её нетрудно. С этой стороны углубление (профессионал или эксперт) имеет более высокую значимость.

* * *

Так что теперь я дважды сертифицированный специалист. В планах на этот год есть ещё одна сертификация в части TFIN52 (расширить фронт), хотя может и стоит посмотреть в сторону углубления по специализации (профессионал C_ABAP_70).

ABAP и маска для ввода

Есть в природе так называемые маски для ввода, но в SAP нет такого понятия.

Вместо этого в ABAP есть такое свойство домена как “Conversion exit” или “Подпрограмма преобразования”.

В чём фикус – признаётся разница между отображением данных и внутренним хранением. Примеры:

(далее…)

Кто лучший друг программиста?

Данная статья носит скорее умозрительный характер. Поэтому стоит рассматривать её не как эссе, а как обычную байку.

Обзор понятия

Главные отличительные признаки понятия “Дружба” следующие:

1. Доверие
2. Симпатия
3. Терпение

Нельзя назвать субъект Другом, не испытывая доверия к нему.

Друг должен быть симпатичен по-человечески.

Терпение требуется для сохранения дружбы. Как говорилось в одном фильме “У всех свои недостатки”.

Если говорить о взаимопомощи, то это лишь следствие: без взаимопомощи сложно взрастить доверие и симпатию.

Можно вспомнить много пословиц и поговорок про друзей. В них сокрыт исторический народный опыт, который не следует игнорировать:

  • Не имей сто рублей, а имей сто друзей
  • Старый друг лучше новых двух
  • Книга – лучший друг
  • Лучшие друзья девушек – это бриллианты
  • Скажи мне кто твой друг, и я скажу кто ты
  • Собака – друг человека

 

Список кандидатов

Давайте очертим некий список кандидатов в друзья. Каждого кандидата будем соотносить с вышеописанными критериями.

(далее…)