AS/400, iSeries, System i Objects - Количество записей ODT - с чем они связаны в источнике RPG
Пытаясь выяснить, какой исходный файл RPG использовался для создания объекта, я стараюсь использовать размер объекта, количество инструкций MI и количество записей ODT (таблица определения объекта), чтобы подтвердить, какой исходный файл использовался для создания объекта., Кажется, существует мнение, что первые два могут отличаться в зависимости от версии компилятора.
Поэтому интересно, есть ли соответствие между определенным типом утверждений в источнике RPG и количеством поступлений ODT.
Я много гуглил на эту тему и не нашел никакого объяснения, которое было бы понятно среднему программисту по поводу ODT. Эта статья содержит очень подробное описание ODT, но мне трудно связать ее с программой RPG и количеством записей ODT.
Этот глоссарий определяет ODT как таблицу, созданную во время компиляции системой для отслеживания объектов, объявленных в программе. Программные объекты в таблице включают переменные, константы, метки, списки операндов и описания исключений. Таблица находится в скомпилированном программном объекте. Значит ли это, что компиляция источника RPG в разных версиях операционной системы приведет к тому, что число записей ODT останется одинаковым для каждого объекта, созданного из одного и того же источника?
2 ответа
Размер объекта, инструкции MI, ODT могут меняться в зависимости от версии компилятора. Или даже применение ПТФ.
Существует два поддерживаемых метода для привязки источника к программному объекту.
Команда программы отображения (DSPPGM):
Type of program . . . . . . . . . . . . . . . . : OPM
Source file . . . . . . . . . . . . . . . . . . : QRPGSRC
Library . . . . . . . . . . . . . . . . . . . : OLSMLSRC
Source member . . . . . . . . . . . . . . . . . : OP510B
Source file change date/time . . . . . . . . . . : 08/07/05 08:45:11
Примечание для ILE RPG, DSPPGM предоставляет третий экран со списком используемых модулей, и вы можете 5= Показать описание и увидеть:
Module . . . . . . . . . . . . . . . . . . . . : OP021B
Library . . . . . . . . . . . . . . . . . . : QTEMP
Source file . . . . . . . . . . . . . . . . . : QRPGLESRC
Library . . . . . . . . . . . . . . . . . . : OLSMLSRC
Source member . . . . . . . . . . . . . . . . : OP021B
Module attribute . . . . . . . . . . . . . . . : RPGLE
Module creation date/time . . . . . . . . . . : 04/04/14 10:27:41
Source file change date/time . . . . . . . . . : 03/25/14 14:08:49
В коммерческих пакетах управления изменениями используется атрибут уровня управления объектами, который можно установить с помощью API и просмотреть с помощью API или DSPOBJD DETAIL(*SERVICE)
Object . . . . . . . . . . . . . . . : OP021B
Library . . . . . . . . . . . . . : OLSMLPRG
Library ASP device . . . . . . . . . : *SYSBAS
Library ASP group . . . . . . . . . : *SYSBAS
Type . . . . . . . . . . . . . . . . : *PGM
Object control level . . . . . . . . : 00N0001X
Обратите внимание, что для программ ILE / служебных программ. Элемент управления изменением объекта может быть установлен как для объекта *PGM, так и для используемых объектов модуля. Управление изменением объекта уровня модуля доступно через DSPPGM с информацией об источнике модуля.
Команда DSPPGM не зависит от какого-либо пакета управления изменениями. Он показывает атрибуты объекта *PGM в том виде, как он был создан.