首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JT400 -回应MSGW工作

JT400 -回应MSGW工作
EN

Stack Overflow用户
提问于 2016-08-23 14:02:11
回答 3查看 1.2K关注 0票数 4

在AS400中可以从JT400回复MSGW作业吗?

我得到了作业元素,我可以通过Job.MESSAGE_REPLY_WAITING知道它是否处于MSGW状态

例:通常我通过WRKACTJOB使用"C“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-24 21:19:15

这是起作用的代码。我认为它可以缩短和优化。

一定有更好的办法!

代码语言:javascript
复制
public boolean answer(String answer) throws MyOperationException {
   if (answer == null || answer.length() > 1) {
      throw new MyOperationException();
   }

   MessageQueue msgq = new MessageQueue(as.getAS400(), QSYSObjectPathName.toPath(MyAS400.LIBRARY_LIST, "QSYSOPR", "MSGQ"));
   msgq.setSelectMessagesNeedReply(true);
   msgq.setListDirection(false);

   try {
      Enumeration m = msgq.getMessages();

      while (m.hasMoreElements()) {
         QueuedMessage msg = (QueuedMessage) m.nextElement();

         if (msg.getFromJobNumber().trim().equals(getNumber())) {
            msgq.reply(msg.getKey(), answer);

            return true;
         }
      }
   } catch (AS400SecurityException | ErrorCompletingRequestException | InterruptedException | IOException | ObjectDoesNotExistException ex) {
      ex.printStackTrace();
   }

   return false;
}

如果您不知道消息队列,可以使用ObjectList。

票数 0
EN

Stack Overflow用户

发布于 2016-08-23 17:20:43

大卫的correct...but错过了几步我think..and注意到我也没试过。

拿到工作日志:

Job.getJobLog()

获取排队的消息

JobLog.getMessages

获取消息队列

QueuedMessage.getQueue()

然后回复

MessageQueue.reply()

票数 4
EN

Stack Overflow用户

发布于 2016-08-23 15:54:55

实际上,我还没有尝试过这一点,但是请看一下reply函数在MessageQueue (JTOpen)中的应用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39103382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档