Товарищ недавно подходил, спрашивал не знаю ли я, как сделать светофор при выводе данных в TABLE CONTROL. Почесал я голову, и сказал два волшебных слова – SE16 и ICON. А теперь по-подробнее…
История ввода для полей на экране — трюк
Я и раньше подмечал, что у истории ввода есть некоторое запрограммированное поведение – для коротких оно работает, а вот для длинных – не хочет.
История ввода включается автоматически, однако при разработке интерфейса для элементов на экране можно задать опцию “No input history” – в этом случае история ввода никогда не будет сохраняться для этого поля. Но нет опций жёсткого включения истории при разработке экранов.
Ковырнул, и вот что узнал:
Дополнительная таблица в сплиттинге
Запишу себе, чтоб не забыть: В настройках сплиттинга есть настроечная таблица T8G10, не включенная в настройки.
В ней можно присвоить транзакции настройкам по сплиттингу (Операции и варианту).
В некоторых особых случаях при проводке можно получить сообщение об ошибке вида GLT2 051 “Чему-то там не присвоена ни одна хозяйственная операция” – и данная настроечка может помочь решить эту проблемку.
Диапазоны номеров
В отличие от многих других диапазонов в SNRO для бухгалтерских документов есть годовая зависимость – их нужно продлевать каждый год. Кроме всего прочего есть и зависимость от БЕ.
Основная транзакция ведения – FBN1. Но вот она очень неудобна для массовых действий – окошечко маленькое, ограничения задать невозможно, копирование практически отсутствует.
Поэтому есть две помогательные транзакции:
OBH1 – копирование из БЕ в БЕ
OBH2 – копирование из года в год
ЗЫ. Один из вариантов – создать условный “эталоный” диапазон в году с номером 9999 – и копировать именно его.
ЗЗЫ. И не забывайте, что есть проблема скидывания счётчиков при переносе диапазонов в запросе. Если вы перенесёте запрос в мандант с имеющимися документами, то создание документов будет спотыкаться – в ручном режиме потребуется смотреть последний номер фактического документа и нагонять эту цифру в диапазоне.
Разминка для программистов — говнокод
Читаю периодически Хабр, там многое бывает полезно даже не в области SAP/ABAP, а имеет смысл и само по себе.
В частности, в одном из недавних постов была приведена задачка:
Напечатать на экране следующее:
1
2-1
1-2-3
4-3-2-1
1-2-3-4-5
6-5-4-3-2-1
(Естественно, вместо 6 может быть любое число).
Добавление колонок в таблицу
Наблюдал у товарища при определённом стечении обстоятельств совершенно неожиданное поведение простого ракурса — несколько колонок из одной таблицы и условие поле “Скрыть” не равно крестику.
Чудило вплоть до эффектов “в таблице 200 записей, три записи помечены крестиком, но ракурс показывает три записи без крестика”, а тестовое условие было “равно крестику”.
Я аж собственным глазам не поверил.
Странности при копировании данных
Открываю средство поиска. Найдено 23 записи. Жму Контрол+Игрек. Копирую. Иду в Эксель. Вставляю. Проверяю количество записей. 19. Очуметь. Где остальные записи???
Ну вот такой пример:
Вставляется в таком виде:
Владение Экселем никогда не помешает
Эксель имеет большое количество сфер применения. Владеть им в рамках необходимости очень рекомендуется. Сферы применения мне видятся такими:
Шаманство вокруг поздней активации сплиттинга
Вот в одной конторе есть ситуация с поздней активацией сплиттинга.
Открытые позиции, созданные с момента активации отказываются выравниваться: говорит, что GLT0002 и хоть трава не расти.
Методов несколько.
Наиболее цивилизованным (вроде бы) является процедура миграции, там есть определённый сценарий "Subsequent Implementation of Document Splitting". Инструмент миграции (будто бы) является особой услугой – но на сайте как-то невнятно всё написано. Сами пумпочки этой функциональности в SPRO по этому поводу начинают спрашивать какие-то лицензии. Боязливо ввязываться в такие действа. А мне-то хотелось всего лишь самому кнопочки понажимать…
Самым нецивилизованным способом является ручное струяченье записей сплиттинга в соответствующую таблицу. Тоже боязливо – за изменение таблиц SAP.
В качестве баланса между ними можно использовать метод, в котором запускаются поочерёдно три волшебные служебные программы в SA38.
Простые документы нормально обработались, но вот один из них споткнулся с расстройством настроек по сплиттингу. По счетам ГК – платёж, а по виду документа – фактура. Система встала в позу, и я её хорошо понимаю.
Так что потребовалось изменить настройки, прогнать документ, вернуть настройки обратно.
Каждый документ пропихивать вручную – сомнительное удовольствие, но требуется ли писать мега-программу (впрочем простую и небольшую), вызывающую три волшебных программы, особенно с учётом возможных раскоряков по настройкам… ?
Дату активации сплиттинга в продуктивной системе, так сложилось, что никто точно не знает. Забавен быстрый способ по которому это дело можно посмотреть… Узнаём имя ракурса, по которым проходит такая настройка, затем в системе настройки в служебной таблице ищем запросы, связанные с этим ракурсом. Осталось по журналам транспортной системы посмотреть дату импорта запроса.
С полученной датой активации можно отфильтровать таблицы открытых позиций контрагентов по полю CPUDT для пущей надёжности.
Получено число порядка четырёх сотен. Это не много, но и не мало…
Проводки между филиалами – БЕ против БС
Видел несколько вариантов реализаций большой организации с филиалами:
- Несколько балансовых единиц
- Только одна балансовая единица и несколько бизнес-сфер
Я для себя дилемму решаю таким образом – разные юридические лица должны иметь разные БЕ.