Я пытаюсь предоставить пользовательский интерфейс в Access для отображения состояния запланированных заданий AS400, чтобы они отображались как ожидающие, выполняемые или завершенные.
Я унаследовал некоторый код, который планирует несколько заданий, который работает нормально, но пользователь никак не может увидеть, каков статус задания, и они иногда зависают.
Завершение в настоящее время сигнализируется с помощью числового счетчика, хранящегося в таблицах, которые обновляют задания, и есть событие Таймера формы, которое регулярно проверяет завершение.
Используя этот метод, код может сообщать о завершении обработки на AS400, но не о том, завис он или произошел сбой, или если сервер сильно загружен и работает медленно.
Я пытался найти примеры кода в интернете, но нарисовал пустое место. Все, что я мог найти, это помогло - Руководство по базам данных IBM (pdf и онлайн) и слайд-шоу в формате pdf под названием «Разработка ActiveX iSeries Access» Троя Си Бликер из IBM.
Используя эти ресурсы, я написал некоторый код с использованием библиотеки объектов ActiveX IBM i Access для Windows (cwbx) для связи с AS400, который работает нормально, и я могу выполнить команду WRKUSRJOB для проверки статусов заданий, но я могу Не понимаю, как (или даже если) можно просмотреть результаты команды.
Есть ли способ сделать это, и если да, то как?
Dim SysNames As New cwbx.SystemNames
Dim SvrName As String
Dim Svr As New cwbx.AS400System
Dim Svc As cwbx.cwbcoServiceEnum
Dim Cmd As New cwbx.Command
Dim x As New cwbx.DataQueue
'Set server name
SvrName = SysNames.DefaultSystem
Debug.Print SvrName
Svr.Define SvrName
'Set service type
Svc = cwbcoServiceRemoteCmd
'Connect and test
Svr.Connect Svc
Debug.Print Svr.IsConnected(Svc)
'Command
Set Cmd.System = Svr
Debug.Print "WRKUSRJOB"
Cmd.Run "WRKUSRJOB"
```
'How to get results of the command? Nothing in Errors
Debug.Print SprintF("Errors: %s", Cmd.Errors.Count)
```
'Tidy up
Svr.Disconnect Svc
'Object destruction
Set Cmd = Nothing
Set Svr = Nothing
Set SysNames = Nothing
Было бы замечательно, если бы, например, коллекция Errors содержала результаты команды, или если они могли быть переданы по конвейеру или перенаправлены в файл или очередь, которые могли бы быть прочитаны ActiveX, но я продолжаю рисовать пустым.
Редактировать: На моем клиенте установлена версия v7r1, и он постепенно отключает db2, поэтому нет возможности обновления до более поздней версии.