Я предполагаю, что вы имеете в виду, что вы хотите отсортировать определения сообщений, хранящиеся в файле сообщений, а не текущее содержимое очереди сообщений. Вы можете создать таблицу базы данных (т.е. файл), чтобы получать описания сообщений, а затем делать с этими записями все, что захотите.
Обычно вы можете DSPMSGD
к файлу печати. Но мы создадим физический файл или таблицу и переопределим вывод команды DSPMSGD
в наш файл. Первые три записи являются мусорными для наших целей, и мы отбросим их, используя CPYF
из рабочего файла в наш конечный файл.
Упростите задачу, установив текущую библиотеку.
CHGCURLIB mylib
Вы можете определить свои файлы в DDS, но я продемонстрирую это в SQL.
STRSQL
Чтобы создать рабочий файл и файл результатов:
CREATE TABLE qtemp/workfile
( x1 char(1),
msgid char(7),
sev char(2),
msgtxt char(132)
)
CREATE TABLE myfile
( msgid char(7),
sev char(2),
msgtxt char(132)
)
Выйдите из SQL, чтобы вернуться в командную строку.
Переопределите выходной файл для команды DSPMSGD
в своем рабочем файле и соберите свои данные.
OVRDBF QPMSGD workfile
DSPMSGD RANGE(*FIRST *LAST) MSGF(some_msgf)
DETAIL(*BASIC) OUTPUT(*PRINT)
CPYF workfile myfile MBROPT(*replace)
FROMRCD(4) FMTOPT(*MAP *DROP)
Теперь вы можете вернуться к SQL и увидеть плоды своего труда.
STRSQL
SELECT *
from myfile
order by msgtxt