Подготовка к FI/CO и ABAP интервью на инженерных сценариях
Два учебных сценария и схема ответа: диагностика финансового расхождения и проектирование проверяемой ABAP-логики без выдуманного опыта внедрения.
3 мин чтения·База знаний
Ревизия 2Общие понятияЧастичное покрытиеКонтекст: CTX-GENERALдокументальная опора: недостаточно данных
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.
Подготовка к FI/CO и ABAP интервью на инженерных сценариях#
Технический ответ сильнее, когда он показывает порядок рассуждения и проверяемый результат, а не перечень терминов. Для каждого вопроса сначала уточните продукт и редакцию, бизнес-сценарий и исходные данные. Затем назовите предположения, возможные причины, безопасную проверку и критерий завершения. Разделяйте реальный личный опыт, знания по документации и учебный пример.
В условии отчёт по счету расходится с детализацией проводок, но общий остаток совпадает. Не начинайте с выбора транзакции или таблицы. Сначала зафиксируйте срез: компания, ledger, фискальный год и период, счет, валюта или тип валюты, статус и набор включённых документов. Уточните, сравниваются ли оборот, изменение периода или остаток на дату.
Далее определите, что представляет исходная позиция, и восстановите ключи сопоставления. Сравните число строк и суммы по дебету/кредиту, отдельно проверьте сторно и повторные записи. Совпавший итог может скрывать одну пропущенную и одну лишнюю позицию. Для CO добавьте объект назначения и способ распределения: цикл, сегмент, база, получатель и период. Покажите, как связали исходный sender с receiver, и каким независимым инвариантом проверили распределение.
Хороший вывод не говорит «данные точно исправны» только из-за нулевой разницы. Он перечисляет доказательства, оставшиеся неизвестные и следующий запрос или сверку, которая различит конкурирующие причины.
Сценарий ABAP: распределить сумму между получателями#
Нужно распределить 100,01 между несколькими получателями по весам и получить воспроизводимый результат в копейках. Обсудите входной контракт: целая сумма в minor units; уникальные идентификаторы получателей; положительные допустимые веса; правило для нулевого общего веса; способ округления и правило распределения остатка.
Для точности не переводите деньги в двоичную плавающую точку. Сначала вычислите точные доли в выбранном decimal-типе, затем округлите к minor units и распределите остаток детерминированным правилом, например по наибольшей дробной части с tie-break по стабильному ключу. Проверки должны доказать сохранение общей суммы, отсутствие отрицательного или дублированного получателя и повторяемость результата при перестановке входных строк.
Отдельно объясните границы ABAP SQL, SAP LUW и ABAP Unit: выборка должна возвращать строки нужного уровня детализации в пределах авторизационной области; общая бизнес-операция не должна скрывать commit без явного контракта; ожидаемые результаты теста рассчитываются независимо от производственного алгоритма. Синтетический Python-эталон или псевдокод не подтверждает работу ABAP runtime.
Назвать, что представляет одна строка, её ключи, валюту/единицу и релизные допущения.
Показать последовательность расчёта или диагностики.
Привести один малый пример с ожидаемым результатом.
Назвать негативные случаи и независимые проверки.
Честно отметить, что лично выполнялось, а что изучено по документации или смоделировано.
Эти сценарии являются учебными. Они не сообщают о личном участии в SAP-внедрении, не подменяют подтверждённую биографию и не являются отчётом о выполнении ABAP-кода в системе.
FI/CO and ABAP interview practice with engineering scenarios#
A strong technical answer shows a verifiable line of reasoning, not just a list of terms. First clarify the product and edition, business scenario, and source data. Then state assumptions, possible causes, a safe check, and a completion criterion. Separate personal experience from documentation-based knowledge and practice examples.
FI/CO scenario: a report does not reconcile to journal items#
The account report differs from journal detail even though the total balance matches. Do not start by naming a transaction or table. Fix the slice first: company, ledger, fiscal year and period, account, currency or currency type, status, and included documents. Clarify whether the comparison is turnover, period change, or balance at a date.
Then establish source-item grain and matching keys. Compare row counts and debit/credit amounts, and check reversals and duplicate records separately. A matching total can hide one missing item and one extra item. For CO, add the assignment object and allocation method: cycle, segment, base, receiver, and period. Explain how sender and receiver were linked and which independent invariant checked the allocation.
A good conclusion does not say that data is correct solely because the difference is zero. It names the evidence, remaining unknowns, and the next query or reconciliation that can distinguish competing causes.
ABAP scenario: allocate an amount across receivers#
Allocate 100.01 across receivers by weights and return a reproducible result in cents. Clarify the input contract: amount in integer minor units; unique receiver IDs; valid positive weights; behavior for a zero total weight; rounding method; and remainder allocation rule.
Avoid binary floating point for money. Calculate exact shares with an appropriate decimal type, round to minor units, then distribute the remainder deterministically, for example by largest fractional remainder with a stable-key tie-break. Checks should prove amount conservation, no negative or duplicate receiver, and identical results after reordering input rows.
Explain ABAP SQL, SAP LUW, and ABAP Unit boundaries separately: a query needs correct grain and authorization scope; a reusable business operation should not hide commit without a clear contract; expected test results should be calculated independently from production code. A synthetic Python golden result or pseudocode does not prove ABAP runtime behavior.