【问题标题】:Error detection in AS400AS400 中的错误检测
【发布时间】:2017-07-28 00:54:23
【问题描述】:

我现在掌握了 VBA 的基础知识,并使用它在 AS 400 中发送或获取数据,但我对理解 IBM“主机访问类库”的文档并不那么先进。我想知道如何检测 AS400 中的错误,我现在正在使用下面的脚本或在运行宏之外自行跳过错误。

Sub check_error()
    autECLSession.autECLOIA.WaitForAppAvailable
    autECLSession.autECLPS.wait 100
    autECLSession.autECLPS.SendKeys "[reset]"  
End Sub

当出现错误时,我无法使用一些命令,例如 autECLOIA.WaitForInputReady,因此我在“check_error”中使用“wait 100”,但它并不总是有效。那么如何检测错误,是否有任何命令可以做到这一点?或者有什么处理方法?

【问题讨论】:

  • 不清楚你的代码是否使用了 VBA 的典型错误处理代码(On Error Goto Label, On Error Resume,...)如果没有,这里是一个起点:excelmacromastery.com/vba-error-handling跨度>
  • 我需要返回值来检测 AS400 中的错误,如果错误发生与否示例:[If error then; X;别的; y;end if;] 不是 vba 语言的编译错误
  • VBA 的错误处理提供返回值来描述您使用 Err.Number 和 Err.Description 等时出现的错误。您是否尝试过使用这些?此外,请务必在您的问题中提供一些代码,以便这里的那些可以帮助您。谢谢
  • 看看autECLOIA.NotifyOIAError

标签: vba ibm-midrange


【解决方案1】:

不幸的是,这是一个庞大的主题,取决于应用程序。在 5250 显示器上向用户显示错误的方式有很多种,以至于一种方法无法适应所有情况。最好只向我们询问您的具体用例而不是所有用例。

但是,让我为您提供一些错误呈现方式的高级视图。

外部消息队列 这是程序向 *EXT 消息队列发送状态消息的时候。这些消息显示在显示屏的最后一行。它们不会出现在作业日志中,通常不会用于异常,但它们也不会结束程序。

程序消息队列 应用程序可以定义一个消息子文件,它是一种记录格式,显示在 80x24 屏幕的第 1 行和第 24 行之间,或 132x27 屏幕的第 1 行和第 27 行之间。它出现在哪里,以及它使用的显示行数在显示文件 DDS 中定义。此消息子文件中出现的消息可能是错误的唯一指示,但它也可能包含信息性消息。您将不得不通过消息的文本来确定它是哪个。与消息一起,字段也可以是反向图像,或以指示错误的方式着色,但键盘未锁定,并且没有声音指示存在问题。

DDS 错误消息 可以定义 DDS 错误消息以锁定键盘、反转字段图像并显示错误消息。这些消息也可以显示在任何行上,这可以在 DDS 中进行配置。除了典型的显示行之外,还有一条附加行:80x24 屏幕上的 25 行和 132x27 屏幕上的 28 行,这些消息可以访问。

自定义错误消息 有时会以完全自定义的方式指示错误,例如通过在屏幕上的某处填充文本字段。

关键是您需要了解您的应用程序,以及它如何提供用户反馈,如果没有这些知识,我们将无法为您提供帮助。

【讨论】:

  • 在面对一个未充分说明的问题时,您的勇敢尝试必须归功于您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
相关资源
最近更新 更多