问题已得到解决.原因在自己不太细心.先暗暗鄙视一下自己,然后详细说明.首先,把sequence4个compile options全部选上,然后分二次跑程序.会发现good图片出的结果到0为止,没有下面一行,bad图片出的结果为2,下面还有一行.发现这个不同在于ankeyshan同学的提醒说单独把结果显...
显示全部问题已得到解决.原因在自己不太细心.先暗暗鄙视一下自己,然后详细说明.
首先,把sequence4个compile options全部选上,然后分二次跑程序.
会发现good图片出的结果到0为止,没有下面一行,bad图片出的结果为2,下面还有一行.
发现这个不同在于
同学的提醒说单独把结果显示出来.本来自以为没问题的地方,最开始的时候偷懒没有这样做.后来设计了单独打印return value的时候,报ParamValue/Limitvalue is not appropriate,Error calling DSSetParam(EXECSQL),code=-4,于是真相就大白了.错误明明白白指向有了换行的原因造成的结果,返回去查看return value的值,果然多了一行,即上面good/bad二个结果的不同.于是,条件可以改成Convert(@FM," ",Execute_Command_13.$CommandOutput)>0即可.或者可以把脚本最后的输出修改一下亦可:
echo -n $num
debug
总结:
(1)Routine activity与Execute command stage二者的使用.如果可以使用Execute command stage实现的功能,建议就使用Execute command stage.原因在于该stage可以返回两个值,一个是shell脚本的是否成功的状态值,另一个是输出结果的值,而使用routine activity只能输出一个值(或许可以输出多个值,我所会的只能输出一个值,请大家持怀疑态度).更重要的原因在于使用Execute command stage可以使得打开sequence compile options的四个选项.这可以更可能多的收集sequence运行的情况,不会出现sequence中间某些JOB abort,而整个sequence仍然显示Finished的状态.而使用routine activity的时候不能打开compile选项(或许可以,目前就我观察的情况而言,是不行的.请大家持怀疑态度)
(2)细心、大胆推测小心求证是必须的。下一阶段,好好看看Basic reference guide.
最后,谢谢大家热心的帮助。鞠躬,下台。
收起