Достигая невозможного, пьеса

Все события и герои вымышлены. Любые совпадения с реальными личностями случайны.

Акт первый

Консультант: Нам нужно массово списать материалы, но так чтобы в оборотах это было отражено в особом периоде.

Старый фрилансер: Ну дело житейское, разработчика своего попросите.

Консультант: Мы спрашивали, но он сказал, что это невозможно.

Старый фрилансер: Поверь мне, милая, если разработчик говорит, что нечто невозможно, то это значит, что он ленивая жопа.

Консультант: Посмотри, пожалуйста!

Старый фрилансер: Не вопрос, но задачку-то поставь.

Акт второй

Старый фрилансер: Я ещё ничего не начал, но у меня тут недоумение возникло неожиданно.

Консультант: В чём именно?

Старый фрилансер: Списываются запасы в особом периоде, то есть в волшебном тринадцатом месяце, а это где-то в районе двенадцатого боя курантов в ночь на новый год. Чуешь проблему? Форму баланса припоминаешь?

Консультант: Пока не понимаю о чём ты…

Старый фрилансер: Там есть две колонки «На начало отчетного периода» и «На конец отчетного периода». Это будет означать, что в балансе прошлого года за двенадцать месяцев сумма будет  отражена в строке «Запасы», а на начало нового года её уже не будет. Или если практически, то у нас конец прошлого года должен совпадать с началом следующего, иначе никак.

Консультант: Ой, да… И что же будет?

Старый фрилансер: Кража в особо крупном размере, статья 188 уголовного кодекса, до 10 лет с конфискацией имущества.

Консультант: Я поговорю с бухгалтером, потом напишу.

Акт третий

Консультант: Я поговорила с бухгалтером. Она говорит, что эта балансовая единица не будет сдавать баланс в следующем году, там у них реорганизация и всякое такое.

Старый фрилансер: Хорошо, как сделаю, напишу.

Акт четвёртый

Старый фрилансер недовольно ворчит:

Ого, они тут уже что-то начали…

Сравним версии…  IF BUKRS = ‘1025’ AND SY-UNAME = ‘U00127’…

Ха, хорошее начало…

… UPDATE BKPF SET MONAT = 13  WHERE BELNR = LV_BELNR AND …

Ого и следом COMMIT WORK AND WAIT, это контрольный!

Конечно же, у них так ничего не получится…

Стоп, мне надо прийти в себя…

Переходя на громкий голос: Жаным, у меня перерыв! Пожалуйста, завари чаю. И у нас там ещё остались эти штучки с творогом?

Акт пятый

Старый фрилансер строчит код, тихо разговаривая с самим собой:

… Период надо вынести на экран выбора… не в коде же его прописывать…

… но его нужно открывать на ввод, только если дата проводки стоит тридцать первого декабря…

…а если не тридцать первого декабря, то период закрыть на ввод и перезаписать из даты проводки… классика!

… так-с, расширение 1120 как обычно… вынести в отдельный класс … добавим поле MONAT в SUBST…

… флаг надо как-то передать … ну у меня же класс есть, статический атрибут годится…

… пум-пурум… ну пора пробовать … как же там эту транзакцию…. FB01 … любой технический счет дебет-кредит … готово… теперь в FAGLB03 надо проверить как легло… Ура!

Акт шестой

Консультант: Я начала делать в проде и обнаружила, что в оборотке документ лёг неправильно в двенадцатом периоде. А в самом документе смотрю — там указан тринадцатый период.

Старый фрилансер: Оппа! Сторнируй всё обратно, я сейчас посмотрю что можно сделать. Документов немного? Потому что если много, я могу их запинать ногами, если расчехлю тяжелую артиллерию. Но я стараюсь избегать такого, только при очень-очень большой необходимости.

Консультант: Я буквально пару успела сделать. И что же теперь?

Старый фрилансер:  Пока сторнируй, я позже напишу. (себе под нос) Чёрт! Материальные проводки там проходят по другой схеме. Видимо, нужен чуть другой подход к таким важным полям, как MONAT.  И я сам не проверил, красавец, чо. И консультанты тоже хороши, сразу в проде. Кажется, они переборщили с верой в мой талант.

Акт седьмой

Старый фрилансер тыкает в браузере, тихо разговаривая с самим собой:

Так-с, а чего прям действительно нельзя? Ну в интерфейсе BAPI период указать нельзя. Ну нельзя, значит нельзя.

Окей, гугл!

ABAP special period substitution.

Ага, SDN  это наше всё.

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

Ерунда какая-то.

Окей, гугл! ABAP MIGO posting in special period

Ого, другое дело. Уже более конкретное что-то. Нота?

Ну хорошо, значит пора пришла ноты почитать. Где там был у меня эс-юзер…

Ну вот открываю… и что тут написано… бла-бла-бла… проводки MIGO в особых периодах не поддерживаются… точка.

Вот и приехали. Согласен, конечно, вот поддерживай такую хрень с разъехавшимся балансом в стандарте, это же попытка выстрелить себе в ногу…

Акт восьмой

Старый фрилансер клацает мышкой, тарабанит по клавиатуре, тихо разговаривая с самим собой:

Значит это не годится…

… ну мало ли, что в ноте написано… какие ещё варианты?

GGB1? Да ну её, пока там натыкаешь мышкой — уже устанешь. Да и слабовата артиллерия.

… AC_DOCUMENT? Ну там можно было всякие хитрые штуки делать.  Кажется, раз уж код проводки там можно было менять…

… и что тут по стеку вызовов? SAPLRWCL и там у нас T_ACCIT… Ассайн его за ногу…

… Now my hands are really dirty…

… Кстати, о сторно… А если списание материала сторнируют? … SAPMM07M и там уже YMSEG … клеим AWKEY … проверяем бухгалтерский документ … вроде всё …

Теперь надо проверить… Запускаем… период закрыт… как же там транзакцию-то звали…

Окей, Гугл!

SAP MM open period transaction

(…клац… клац…)

Акт девятый

Старый фрилансер: Готово в деве, проверяй.

Консультант: Хорошо!

Старый фрилансер: Только я тут подумал, что надо обработку сторно забабахать, так что проверь и этот сценарий тоже.

Консультант: Отлично, спасибо.

Акт десятый

На экране ноутбука крутятся лекции курса System Conversion to SAP S/4HANA, старый фрилансер задумчиво рассуждает вслух:

Ага, как же. Custom Code Analysis. А потом ещё и Adaptation and Adjustment. Вот и адаптируй потом такие трюки в этой Хане. Надеюсь, что данный кейс понадобится только для закрытия этого года.

А дальше, как говорит старинная народная мудрость, или ишак сдохнет, или султан помрёт.

Вот так и живём…

Переходя на громкий голос: Милая, а что сегодня на ужин? Я заработал нам ещё немного денег.

Comment (1)

Добавить комментарий

Ваш адрес email не будет опубликован.