【问题标题】:as400 acsbundle.jar IBMas400 acsbundle.jar IBM
【发布时间】:2020-07-27 03:57:27
【问题描述】:

我正在研究 AS400。我对这个工具完全陌生。

当我启动IBM tool interface 时,我可以单击一个链接来启动另一个允许我执行 SQL 脚本的窗口。

然后我可以执行 1 个命令,然后执行一个 SQL 请求。

第一个命令(根据我的理解)允许我过滤数据,而第二个命令是一个基本的 SQL 请求。

我希望能够直接在命令行中执行this 2 commands

我尝试如下:

java -jar /Applications/IBMiAccess/acsbundle.jar /plugin=rmtcmd /cmd="call myLib/myProg '20200706 20200708 10047'" /system=my.ip.address

java -jar /Applications/IBMiAccess/acsbundle.jar /plugin=cldownload /system=my.ip.address /clientfile=/Users/MYUSERNAME/Downloads/test.xlsx /sql="SELECT * FROM MYDB.MYTABLE" /userid=MYUSERID

第一个命令说:程序已正确执行,但是当我尝试下载结果(使用第二个命令)时,它不是预期的......更糟糕的是,我什至可以在没有任何参数的情况下执行程序,它说程序正常执行。 当我打开我的文件时,它只会给我当天的数据:/

因此,如果有人可以帮助我解决这个问题,我们将不胜感激!非常感谢:)

【问题讨论】:

    标签: java ibm-midrange


    【解决方案1】:

    了解这里发生的事情会很有用 - 我假设程序将过滤后的输出写入一个表,然后 SQL 语句会读取该表? 我猜你的自动化问题是第二个请求在第一个请求完成之前开始,因为它们将在完全独立的进程中运行。 您最好编写(或要求其他人编写)存储过程,以便在第一步中从 SQL 调用程序,这样您就可以作为 SQL 脚本一次性调用全部内容。

    【讨论】:

      【解决方案2】:

      我找到了 2 个解决方案:

      第一个是使用插件 rss。如果没有人可以帮助您了解以前的 lib / prog 到底是做什么的,那么您可以这样做:

        for indexArray in "${!ips[@]}"
        do
          nameFile="${workingFolder}""${warehouse[$indexArray]}".csv
          java -jar $pathIBM/acsbundle.jar /system="${ips[$indexArray]}" /plugin=logon /USERID=${USERNAME} /PASSWORD=${PASSWORD}
          java -jar $pathIBM/acsbundle.jar /system=${ips[$indexArray]} /plugin=rss /sql="CALL MY_LIB.MY_PROG(${date28DaysAgos}, ${todayDate},${store})" /autorun=1 &
          pid=$!
          sleep 30
          kill -9 $pid
          java -jar $pathIBM/acsbundle.jar /plugin=cldownload /system="${ips[$indexArray]}" /clientfile="${nameFile}" /sql="SELECT * FROM MYDB.MYTABLE" /userid=${USERNAME}
        done
      

      基本上,此解决方案允许您使用 rss 插件。根据您的库的执行时间(CALL MYPROG.MYLIB,您应该在终止进程之前增加sleep 时间。

      下一个解决方案,当然更简洁,将是有一个很好的 SQL 请求,你知道你需要什么,然后:

      for indexArray in "${!ips[@]}"
      do
          nameFile="${workingFolder}""${warehouse[$indexArray]}".csv
          java -jar $pathIBM/acsbundle.jar /system="${ips[$indexArray]}" /plugin=logon /USERID=${USERNAME} /PASSWORD=${PASSWORD}
          java -jar $pathIBM/acsbundle.jar /plugin=cldownload /system="${ips[$indexArray]}" /clientfile="${nameFile}" /sql="${sql}" /userid=${USERNAME}
      done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-03
        • 2015-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多