Всем привет!
Столкнулся с такой проблемой, что в ERP 6.0 не работает Batch Input для транзакции CN21.
Выскакивает ошибка "запись KA PP-PC1 не существует в T683"
Ошибка появляется при проверке внешнего ключа для поля CAUFVD-KALSM на экране SAPLCOKO2112 в строке field caufvd-kalsm module check_kalsm on input. Хочу обратить внимание, что внутри модуля так же есть проверка на существование записи в таблице T683, но в модуль он даже не проваливается, отваливается именно на проверке внешнего ключа. Причём проверка в модуле - корректная, а проверка по внешнему ключу - нет.
Проверка внешнего ключа выполняется по полям CAUFVD-KVEWE, CAUFVD-KAPPL, CAUFVD-KALSM.
Всё дело в том, что при проверке поле CAUFVD-KVEWE - пустое, а должно быть равно констате ZU_KOND = 'A', по аналогии c тем, как было заполненно поле CAUFVD-KAPPL. Я даже нашел в стандарте намёки на это в ФМ CO_ZF_GET_GENERAL_DATA.. Там есть строки:
*...Werte fќr Zuschlagsrechnung setzen
MOVE ZU_APPL TO CAUFVD_EXP-KAPPL.
* MOVE ZU_KOND TO CAUFVD_EXP-KVEWE.
В общем, ладно, проверки проверками, что здесь правильно, а что нет, сложно сказать.. Умом SAP не понять

Меня волнует другое.
При обычном запуске CN21 эта ошибка не появляется, потому что поле KALSM скрытое и на экране SAPLCOKO2112 команда field caufvd-kalsm просто не выполняется. Если открыть это поле через spro, то получаем точно такую же ошибку! Вот это уже попахивает поиском нот! Но никаких, даже близких нот по этой теме я не нашёл..
У меня один вариант, как справится с этой ошибкой, без обращения в SAP. Можно ли как-нибудь запустить пакетник так, чтобы он работал так же как обычный запуск Cn21, и не выполнял проверки для скрытых полей, несмотря на то, что они где-то во внутренней логике заполняются? Если да - то проблема решается без погружения в дебри стандарта, если нет- то это уже отдельный разговор..