Нажмите несколько раз на выход команды DSPSRVPGM
, чтобы перейти к экрану Подписи или просто используйте DSPSRVPGM SRVPGM(...) DETAIL(*SIGNATURE)
Похоже, предыдущая подпись все еще в силе.
Это возможно благодаря использованию блока STRPGMEXP PGMLVL(*PRV)
в источнике связывателя, используемом для создания объекта * SRVPGM.Идея состоит в том, что вы можете добавить новые экспорты в * SRVPGM без принудительной перекомпиляции существующих абонентов.
Однако использование PGMLVL(*PRV)
на самом деле не добавляет никакой ценности.Просто добавляет сложность источнику связующего.
Рекомендуется использовать для ILE
- Использовать жестко закодированную подпись,
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('MYSRV v1')
- Добавить новые процедуры в конецсписок экспорта
- не удаляет экспорт и не изменяет порядок списка экспорта источника связывателя
- при внесении изменений в существующую процедуру, не изменяйте существующие параметры и добавляйте новые как
OPTION(*NOPASS)
Следуя приведенным выше правилам, ваша сервисная программа может быть улучшена без необходимости повторной компиляции или иным образом затрагивающей любые существующие программы, которые вызывают в ней процедуры.Вы должны следовать последним 3 правилам выше даже с блоком PGMLVL(*PRV)
.Таким образом: проще и проще просто использовать жестко закодированные подписи.
Если в какой-то момент вам придется принудительно перекомпилировать вызывающих, то просто измените подпись * SRVPGM,
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('MYSRV v2')
Ссылки: ILE Concepts для презентации RPG от IBM Барбары Моррис
Я рекомендую добавить комментарий в начале о добавлении нового экспорта в конце, а также добавить цифры в комментариидля каждого экспорта, чтобы подкрепить идею о том, что порядок не должен изменяться.
Вы устанавливаете подпись, используя параметр SIGNATURE команды STRPGMEXP
В идеале, подпись никогда не должна изменяться.