Я изменяю эту крайне критичную программу RPGLE, где изменения включают добавление в нее нового параметра ввода.
*entry plist
parm ecorp corp
parm edivi divi
parm eplvl parent lv
parm ewrsc wc rscd
parm eplnt plnt
parm eclvl child lv
parm emord ord
parm easst asst
parm emrwk mrwk#
parm eseqn seq #
parm easeq alt seq #
parm epprd alt seq #
parm eotst alt seq #
parm ewpqt alt seq #
parm ecmpc alt seq #
parm ewurs alt seq #
parm emurs alt seq #
parm epcdt alt seq #
parm E_Optn option
parm eeoj end of job
parm E_Pgm program
parm E_GRP MO GROUP
Список параметров записи программы такой же, как и выше, за исключением последнего параметра, который я добавил сейчас. Программа работает отлично. Но меня немного беспокоит, если это каким-то образом повлияет на другие области, откуда эта программа называется. программы вызова, где последний параметр ввода не передается.
Этот новый параметр ввода будет передаваться только от одной другой программы, которая является частью изменения. Существует довольно много других программ, которые будут вызывать программу, передающую тот же список параметров, что и ранее.
If (%Addr(E_Grp) <> *NULL);
Chain (E_Grp:EWURS:ssmurs) MFMPP00;
If %Found();
MchAllotted = *On;
Leave;
EndIf;
EndIf;
Единственная другая область в коде, где используется этот параметр, показана выше. Здесь я убедился, что перед ссылкой на параметр проверяется, что параметр передан.
Я проверил, и это отлично работает. Однако, учитывая критичность приложения, все же подумал, что нужно обратиться за помощью к специалисту.
Любые указания / предложения по этому вопросу приветствуются.