程序调用嵌套元素

可使用五个嵌套元素中的一个来启动程序:fte:presrcfte:predstfte:postdstfte:postsrcfte:command。 这些嵌套元素指示代理作为其处理过程的一部分来调用外部程序。 必须先确保命令位于运行该命令的代理程序的 agent.properties 文件中由 commandPath 属性指定的位置,然后才能启动程序。

即使每个程序调用元素的名称不同,它们也可共享同一组属性和同一组嵌套元素。 可通过 fte:filecopyfte:filemovefte:command Ant 任务启动程序。 如果已配置 Web 网关以允许将文件上载至代理,请通过指定 x-fte-postdest 头或在 HTTP 请求中使用 postdest 格式字段来配置 fte:postdst 程序调用。

不能从 Connect:Direct® 网桥代理调用程序。

可调用程序的 Ant 任务:

  • fte: filecopy 任务使用 fte:predstfte:postdstfte:presrcfte:postsrc 嵌套元素嵌套程序调用参数。
  • fte: filemove 任务使用 fte:predstfte:postdstfte:presrcfte:postsrc 嵌套元素嵌套程序调用参数。
  • fte: call 任务嵌套使用 fte:command 嵌套元素的程序调用参数。

属性

命令
必需。 指定要调用的程序。 要使代理程序能够运行命令,该命令必须位于由代理程序的 agent.properties 文件中的 commandPath 属性指定的位置。 有关更多信息,请参阅 commandPath 属性command 属性中指定的所有路径信息视为相对于 commandPath 属性指定的位置。 如果 typeexecutable,将期望可执行程序,否则将期望适合于调用类型的脚本。

重试计数
可选。 在程序未返回成功返回码时重试调用程序的次数。 由 command 属性指定的程序最多可调用此数目的次数。 为该属性指定的值必须为非负数。 如果未指定 retrycount 属性,那么将使用缺省值 0。

retrywait
可选。 重新尝试调用程序之前,要等待的秒数。 如果 command 属性指定的程序未返回成功返回码,并且 retrycount 属性指定非零值,那么该参数可确定重试之间等待的时间。 为该属性指定的值必须为非负数。 如果未指定 retrywait 属性,那么将使用缺省值 0。

成功原因码
可选。 该属性的值用于确定程序调用成功运行的时间。 该表达式用于对命令的进程返回码进行求值。 The value can be composed of one or more expressions combined with a vertical bar character (|) to signify Boolean , or an ampersand (&) character to signify Boolean . 每个表达式可以是以下类型之一:
  • 指示进程返回码和数字间的等同性测试的数字。
  • > 字符为前缀的数字,用于指示数字与进程返回码之间的大于检验。
  • < 字符为前缀的数字,用于指示数字与进程返回码之间的 "小于" 测试。
  • ! 为前缀的数字 字符为前缀的数字,指示该数字和进程返回码间的“不等于”测试。
例如: >2&<7&!5|0|14 解释为以下成功的返回码:0、3、4、6 和 14。 所有其他返回码都解释为不成功。 如果未指定 successrc 属性,那么将使用缺省值 0。 这表示当且仅当该命令返回码为 0 时,才会“判定”该命令运行成功。

优先权
可选(仅限 os4690background)。 要分配给 IBM® 4690 系统上的后台任务的优先级。 缺省值为 5,有效值范围为 1 - 9。

消息
可选(仅限 os4690background)。 要在已执行命令的 IBM 4690 系统后台控制屏幕上显示的状态消息。

类型
可选。 该属性的值指定正在调用的程序的类型。 指定以下某个选项:
executable
该任务调用可执行程序。 可使用 arg 嵌套元素指定其他自变量。 可在 commandPath 上访问该程序,并在适用情况下具有执行许可权集。 只要指定 shell 程序 (例如, shell 脚本文件的第一行为: #!/bin/sh) ,就可以调用 UNIX 脚本。 写入 stderr 或 stdout 的命令输出将发送到调用的 IBM WebSphere MQ File Transfer Edition 日志。 然而,数据输出量受代理配置的限制。 缺省值为 10KB 数据,但可使用代理属性 maxCommandOutput 覆盖此缺省值。
antscript
该任务使用 fteAnt 命令运行指定的 Ant 脚本。 可使用 property 嵌套元素指定属性。 可使用 target 嵌套元素指定 Ant 目标。 应在 commandPath 上访问 Ant 脚本。 写入 stderr 或 stdout 的 Ant 输出将发送到调用的 WebSphere MQ Managed File Transfer 日志。 然而,数据输出量受代理配置的限制。 缺省值为 10KB 数据,但可使用代理属性 maxCommandOutput 覆盖此缺省值。
os4690background
该任务调用 OS4690BACKGROUND 程序。 可以在后台运行 IBM 4690 系统上的传输程序调用。 这些调用类型支持运行本机 IBM 4690 应用程序和批处理命令脚本。 如果您运行批处理脚本,那么将带有 -C 选项的 COMMAND.286 应用程序作为应用程序使用,将该批处理脚本和任何指定自变量作为参数传递。

指定为嵌套元素的参数

fte:arg
只有在 type 属性值为 executable 时才有效。 使用嵌套 fte:arg 元素,为作为程序调用的一部分而调用的程序指定自变量。 程序自变量以遇到 fte:arg 元素的顺序从 fte:arg 元素指定的值构建。 您可以选择指定零个或更多的 fte:arg 元素作为程序调用的嵌套元素。
fte:property
只有在 type 属性值为 antscript 时才有效。 使用嵌套 fte:property 元素的 namevalue 属性,以名称值对传递到 Ant 脚本。 您可以选择指定零个或更多的 fte:property 元素作为程序调用的嵌套元素。
fte:target
只有在 type 属性值为 antscript 时才有效。 指定要调用的 Ant 脚本中的目标。 您可以选择指定零个或更多的 fte:target 元素作为程序调用的嵌套元素。

Arg 属性

必需。 要传递到正在调用的程序的自变量的值。

属性

name
必需。 传递到 Ant 脚本的属性的名称。
必需。 与正在传递到 Ant 脚本的属性名相关联的值。

示例

此示例显示了作为 fte: filecopy 任务的一部分指定的 fte:postsrc 程序调用。 程序调用适用于名为 post.sh 的程序,并且提供了 /home/fteuser2/file.bin. 的单个自变量
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN" 
              src=agent1@qm1 dst="agent2@qm2"
              rcproperty="copy.result">                    
		<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>

		<fte:postsrc command="post.sh" successrc=1 >         
				<fte:arg value="/home/fteuser2/file.bin"/>
		</fte:postsrc>

</fte:filecopy>
此示例显示了将 fte:command 程序调用指定为 fte: call 任务的一部分。 程序调用针对名为 command.sh 的可执行文件进行,该文件未传递任何命令行自变量。 如果 command.sh 未返回成功返回码 1,那么会在 30 秒后重试该命令。
<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
            agent="agent1@qm1" 
            rcproperty="call.rc" 
            origuser="bob" 
            jobname="${job.id}">                
		<fte:command command="command.sh" successrc=1 retrycount="5" retrywait="30"/>		
</fte:call>
此示例显示了将 fte:command 程序调用指定为 fte: call 任务的一部分。 程序调用针对名为 script.xml 的 Ant 脚本中的复制和压缩目标进行,该脚本可传递两个属性。
<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
            agent="agent1@qm1" 
            rcproperty="call.rc" 
            origuser="bob" 
            jobname="${job.id}">                
		<fte:command command="script.xml" type="antscript">
          <property name="src" value="AGENT5@QM5"/>
          <property name="dst" value="AGENT3@QM3"/>
          <target name="copy"/>	
          <target name="compress"/>
    </fte:command>	
</fte:call>