Для начала я не ищу просто решение, чтобы исправить это сообщение об ошибке. Я был бы гораздо более признателен, если бы обратился к документации, объясняющей эту ошибку, чем к решению проблемы с кодом. Мне нужно понять, ПОЧЕМУ это происходит, потому что я не могу найти документацию, которая объясняет, что является причиной этой ошибки. Я относительно новичок в RPG (менее 2 лет), поэтому нахожусь на разумном уровне незнания этого.
Я работаю над некоторым устаревшим кодом RPG, который был перекомпилирован в октябре 2017 года. Этот код существует с 2013 года.
Моя проблема в том, что мои пользователи недавно (в течение последних 3-4 месяцев) начали получать десятичные ошибки данных, сообщаемые в этой строке кода:
C EvalR NewValueA = %char(NewValue)
Дампы из сообщения об ошибке показывают, что NewValue пусто. Не 0, просто пусто. По моему опыту с другими языками, это NULL. Ни один из моих ресурсов (включая Google) не дает никаких указаний на то, как NULL обрабатывается% char () в RPGLE. Было бы легко предположить , что% char () не обрабатывает NULL изящно и движется дальше, но это трудно оправдать в обзоре кода.
NewValue определяется как десятичное число 7 0 , NewValueA - это символ из 8 символов.
Заранее благодарим всех, кто может предложить полезные комментарии.