ServiceProgramCall 类

IBM® Toolbox for Java™ ServiceProgramCall 类允许您调用 IBM i 服务程序。 ServiceProgramCall 是 ProgramCall 类的子类,用于调用 IBM i 程序。 如果要调用 IBM i 程序,请使用 ProgramCall 类。

ServiceProgramCall 类使您可以调用 IBM i 服务程序,通过输入参数将数据传递给服务程序,并通过输出参数访问服务程序返回的数据。 使用 ServiceProgramCall 会导致 AS400 对象连接到服务器。 有关管理连接的信息,请参阅 管理连接

缺省行为是服务程序在单独的服务器作业中运行,即使 Java 程序和服务程序位于同一服务器上也是如此。 您可以使用从 ProgramCall 继承的 setThreadSafe() 方法覆盖默认行为,并在 Java 作业中运行服务程序。

使用 ServiceProgramCall 类

要使用 ServiceProgramCall 类,必须确保满足以下要求:
  • 服务程序必须在服务器上
  • 可以将不超过 7 个参数传递到服务程序
  • 服务程序的返回值为 void 或 numeric

使用 ProgramParameter 对象

ProgramParameter 类与 ServiceProgramCall 类配合使用,可在 IBM i 服务程序之间传递参数数据。 您可以使用 setInputData() 将输入数据传递给服务程序。

您可以使用 setOutputDataLength() 来请求您希望返回的输出数据量。服务程序运行结束后,您可以使用 getOutputData() 获取输出数据。除了数据本身,ServiceProgramCall 还需要知道如何将参数数据传递给服务程序。 setParameterType( 的 ProgramParameter) 方法用于提供此信息。 类型指示参数是按值传递还是按引用传递。 在任一情况下,都会将数据从客户机发送到服务器。 一旦数据在服务器上,服务器就会使用参数类型来正确调用服务程序。

所有参数都将采用字节数组形式。 因此,要在 IBM i 和 Java 格式之间进行转换,请使用 数据转换和描述 类。