Работаю над дополнительным проектом, в котором я использую набор представлений для выявления конфликтов записей в наборе физических файлов iSeries.
Что я хотел бы сделать после того, как идентифицирован, - это вытащить профиль пользователя, блокирующий запись, а затем отправить сообщение о прерывании на их терминал в качестве информационного сообщения о прерывании.
Я нашел API QEZSNDMG. Достаточно просто для интерактивного использования, но я пытаюсь собрать команду, которая будет использоваться вместе с QCMDEXC API, чтобы вызвать QEZSNDMG и предупредить пользователя о том, что они блокируют запись.
Изучив документацию IBM по QEZSNDMG API, я видите, что есть два набора параметров параметров, но ничего необходимого (что мне кажется странным, но это другая тема для другого дня). Но я продолжаю получать ошибку «Параметры, переданные при CALL, не соответствуют требуемым».
Вот несколько примеров, которые я пробовал до сих пор из командной строки:
- ВЫЗОВ PGM (QEZSNDMG) PARM ('* INFO' '* BREAK' 'TEST' '4' 'DOUGLAS' '1' '1' '-4')
- ВЫЗОВ PGM (QEZSNDMG) PARM ('* INFO' '* BREAK' 'TEST' '4' 'DOUGLAS')
- ВЫЗОВ PGM (QEZSNDMG) PARM ('* INFO' '* BREAK' 'TEST' '4' 'DOUGLAS' '1')
Примечание: я хотел бы по возможности избегать использования программ CL или RPG, но понимаю, что это может случиться, используя один из многих примеров, которые я нашел перед публикацией. Просто хочу исчерпать этот вариант, прежде чем идти по этому пути.
Обновление. Войдя в систему, я использовал WRKMSGQ для просмотра очередей сообщений, назначенных моей станции. Их было два: QSYS / DOUGLAS и QUSRSYS / DOUGLAS. Затем я выполнил SNDBRKMSG, не повлияв на мою рабочую станцию (IE, сообщение не прервало мой сеанс):
- SNDBRKMSG MSG (ТЕСТИРОВАНИЕ) TOMSGQ (QSYS / DOUGLAS)
- SNDBRKMSG MSG (ТЕСТИРОВАНИЕ) TOMSGQ (QUSRSYS / DOUGLAS)
Я понял, что если я укажу имя сеанса рабочей станции в параметре TOMSG, это сработает:
- SNDBRKMSG MSG (ТЕСТИРОВАНИЕ) TOMSGQ (* LIBL / QPADEV0003)