是否可以從JT400回覆AS400中的MSGW作業?
我已經找到了工作要素,我可以知道,如果它在MSGW地位Job.MESSAGE_REPLY_WAITINGJT400 - 回覆MSGW工作
例如:通常我用「C」通過WRKACTJOB
是否可以從JT400回覆AS400中的MSGW作業?
我已經找到了工作要素,我可以知道,如果它在MSGW地位Job.MESSAGE_REPLY_WAITINGJT400 - 回覆MSGW工作
例如:通常我用「C」通過WRKACTJOB
這是有效的代碼。我認爲它可以縮短和優化。
必須有更好的方法!
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。
我還沒有真正嘗試過這一點,但取請看MessageQueue(JTOpen)中的reply
函數。
我會告訴你的! – LppEdd
它在每個MessageQueue上返回null。 – LppEdd
什麼返回null?也許你應該發佈一些代碼。 –