UniData列出所有可用的子程序/所有参数

时间:2016-05-30 10:28:11

标签: subroutine unidata uniobjects rocket-u2

我正在尝试将一些UniData子例程包装到SOAP Web服务中。我打算使用C#和UODOTNET库(IBM U2 Data Management Interface for .NET)。此外,我正在寻找创建一个引擎来从数据服务器读取所有可用的子程序,并且还读取所有必需的参数并动态生成Web服务所需的代码。

我的代码是这样的:

var session = UniObjects.OpenSession(
        "192.168.0.1",
        "user",
        "password",
        "account"
        );

var cmd = session.CreateUniCommand();
cmd.Command = "LIST SUBURB.INDEX"; // ?????
cmd.Execute();
var res = cmd.Response;

问题1:是否有任何命令可用于检索所有可用子程序的列表?

问题2:是否有任何命令可用于检索特定子程序的所有参数列表?

干杯

2 个答案:

答案 0 :(得分:4)

简短的回答是否定的。

更长的答案是肯定的,但需要做很多工作。

既然你问这个问题,我会假设你缺少很多关于平台的一般知识。因此,您需要:

  • 了解VOC的工作原理,特别是如何在此处编目可执行代码。
  • 了解CATALOG以及全球,本地和直接编目程序的不同之处。
  • 了解您的系统是如何设计的。有些地方的所有东西都直接在VOC中编目,其他地方则是混合物。如果是前者,那么你的问题会更容易。

了解上述内容后,您将了解如何从VOC,本地目录和全局目录中获取所有可执行程序的列表。例如,VOC的简化示例是UniQuery命令LIST VOC WITH F1="C"

困难的部分是获取参数列表,其中没有任何系统命令。要做到这一点,你有两个选择。

  1. 反向设计每个子程序的字节代码并梳理参数数量
  2. 如果您有权访问相关的源代码,请解析它以生成列表。

答案 1 :(得分:3)

只是想在这个上添加注释,在UniData中有一个MAKE.MAP.FILE命令,它将识别将信息放在'_MAP_'文件中的程序和子程序(以及参数的数量)。这并没有告诉你参数的用途,但它有所帮助。