电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

工作流引擎Shark中调用外部程序的方法


发布日期:2024/5/10
 

最近看了一下工作流引擎Shark感觉还可以可扩展性和可配置性都很不错

步骤

定义流程主要是relevant date及applications等

编写调用的class文件见后面

运行Shark装载TestAppInvokexpdl增加Application Mapping选择应用程序为TestApp即在包中定义的应用程序ToolAgent类型为JavaClassToolAgentApplication Name一栏填入Class名称

在Process instantiation management中启动流程此时会自动执行应用程序

注意事项

应用程序中使用到的数据可定义为Workflow Relevant Date传入类型可为INOUT或INOUT运行应用程序的节点处增加Extended Attribute名称为VariableToProcess_UPDATE或VariableToProcess_VIEWvalue为参数名

程序需要在classpath里面使用的程序名称为全名包括包路径(不带class)

编译后的class文件放到repository/ storedprocedures路径下注意包的路径

有三种类型的活动节点可调用外部程序

l 活动节点为Tool类型执行者为System开始和结束模式为AUTOMATIC

l 活动节点为Tool类型没有执行者开始和结束模式为AUTOMATIC

l 活动节点为Tool类型执行者为System以外的类型开始模式为MANUAL结束模式为AUTOMATIC

如果在Shark中未定义程序映射Shark将调用默认的ToolAgent在nf中可定义

RuntimeApplicationToolAgent可执行其它外部程序比如notepad等此时传入的application mode如果为则Shark会等待应用程序的执行结束如果不为则Shark在应用程序开始后会继续流程的处理

JavaScriptToolAgent可用于执行JavaScriptapplication mode为则系统将搜索名为applicationName的文件执行

TestAppInvokejava

public class TestAppInvoke {

public TestAppInvoke() {

}

public static void execute(AppParameter p AppParameter p AppParameter p) {

JOptionPaneshowMessageDialog(null 初始值param= + pthe_value

+ param= + pthe_value + param= + pthe_value);

//这里可设置获取的参数注意在包定义中应定义参数类型为OUT或INOUT

//pthe_mode可获取参数的权限类型可读可写还是可读写

pthe_value = new String(ABCDE);

pthe_value = new Long(); //在Shark中将Integer类型做为Long类型来处理

pthe_value = new Boolean(true);

JOptionPaneshowMessageDialog(null 更改后param= +pthe_mode +pthe_value

+ param= + pthe_value + param= + pthe_value);

}

}

上一篇:如何实现Applet之间跨浏览器窗口的通信

下一篇:JVM基础:JVM参数设置、分析