Java Concurrent Program的实现
在Oracle EBS中的Java Concurrent Program是系统功能中的一个亮点。它的出现使得用户可以在ERP系统上运行自己定义的java程序了。下面就讲一下如何来使用这一功能
编写规范
package com.javac.test
import oracle.apps.fnd.cp.request.*;
import oracle.apps.fnd.util.*;
/**
*
*
*
*
* @author not attributable
* @version 1.0
*/
public class MainExec implements JavaConcurrentProgram {
public static final String RCS_ID = "$Header$";
public void runProgram(CpContext ctx)
{
try{
String inputv;
//取得请求中的参数,
ParameterList lPara = ctx.getParameterList();
//以下部分为依次取得参数
if (lPara.hasMoreElements()){
aNVT = lPara.nextParameter();
if (inputv=="")
{
inputv=aNVT.getValue();
}
}
ctx.getLogFile().writeln("inputv:"+aNVT.getValue(), 0);
ctx.getOutFile().writeln("inputv:"++" Has been downloaded");
}
catch (Exception ex)
{
ex.printStackTrace();
ctx.getReqCompletion().setCompletion(ReqCompletion.ERROR, "");
}
finally
{
}
}
}
以上程序的入口就是:runProgram.。有关于以下
oracle.apps.fnd.cp.request.*;
oracle.apps.fnd.util.*;
这两个Package的JavaDoc找不到。所以,很多相关的方法只有大家自己试一下了。我记得有个getdbconnection的方面十分有用可以取得当前的数据库connection。从而不用自己在代码中连数据库,直接拿过来用就是了。Class代码在服务器的$JAVA_TOP下面。可以copy到本地来。
设置步骤
首先将编译好的Class文件上传到服务器的$JAVA_TOP中。如果是Class文件,那么并发管理器就可以直接找到。如果打包成一个jar文件,那么就需要在$APPL_TOP/admin/adovars.env中,把jar包的路径添加到AF_CLASSPATH和CLASSPATH这两个设置项中,重新并发管理器就可以生效了。
在完成上面一切后我们就可以进系统设置了。
用系统管理员进入:并发->方案->可执行
可执行:任意名称
简称:任意
应用产品:根据自己的情况放置
说明:任意
执行方法:JAVA并发程序
执行文件名:上代源代码的Class名称(MainExec)
执行文件路径(这个译得太差):com.javac.test
好了,这样一来就完成了。
再进入并发->方案->定义
设置一个相关参数。要根据你在java文件中取参数的顺序确定。
比如在本例中:
序号:10
参数:任意名称
值集:10位字符
显示:10
说明大小:30
级连说明大小:30
提示:输入变量
然后把这个定义好的并发程序加到对应职责下:
就可以提示请求去运行了。
运行的结果应该是在输入和日志中都打印出"inputv:"+参数内容。
在Oracle EBS中的Java Concurrent Program是系统功能中的一个亮点。它的出现使得用户可以在ERP系统上运行自己定义的java程序了。下面就讲一下如何来使用这一功能
编写规范
package com.javac.test
import oracle.apps.fnd.cp.request.*;
import oracle.apps.fnd.util.*;
/**
*
Title:
*
Description:
*
Copyright: Copyright (c) 2006
*
Company:
* @author not attributable
* @version 1.0
*/
public class MainExec implements JavaConcurrentProgram {
public static final String RCS_ID = "$Header$";
public void runProgram(CpContext ctx)
{
try{
String inputv;
//取得请求中的参数,
ParameterList lPara = ctx.getParameterList();
//以下部分为依次取得参数
if (lPara.hasMoreElements()){
aNVT = lPara.nextParameter();
if (inputv=="")
{
inputv=aNVT.getValue();
}
}
ctx.getLogFile().writeln("inputv:"+aNVT.getValue(), 0);
ctx.getOutFile().writeln("inputv:"++" Has been downloaded");
}
catch (Exception ex)
{
ex.printStackTrace();
ctx.getReqCompletion().setCompletion(ReqCompletion.ERROR, "");
}
finally
{
}
}
}
以上程序的入口就是:runProgram.。有关于以下
oracle.apps.fnd.cp.request.*;
oracle.apps.fnd.util.*;
这两个Package的JavaDoc找不到。所以,很多相关的方法只有大家自己试一下了。我记得有个getdbconnection的方面十分有用可以取得当前的数据库connection。从而不用自己在代码中连数据库,直接拿过来用就是了。Class代码在服务器的$JAVA_TOP下面。可以copy到本地来。
设置步骤
首先将编译好的Class文件上传到服务器的$JAVA_TOP中。如果是Class文件,那么并发管理器就可以直接找到。如果打包成一个jar文件,那么就需要在$APPL_TOP/admin/adovars.env中,把jar包的路径添加到AF_CLASSPATH和CLASSPATH这两个设置项中,重新并发管理器就可以生效了。
在完成上面一切后我们就可以进系统设置了。
用系统管理员进入:并发->方案->可执行
可执行:任意名称
简称:任意
应用产品:根据自己的情况放置
说明:任意
执行方法:JAVA并发程序
执行文件名:上代源代码的Class名称(MainExec)
执行文件路径(这个译得太差):com.javac.test
好了,这样一来就完成了。
再进入并发->方案->定义
设置一个相关参数。要根据你在java文件中取参数的顺序确定。
比如在本例中:
序号:10
参数:任意名称
值集:10位字符
显示:10
说明大小:30
级连说明大小:30
提示:输入变量
然后把这个定义好的并发程序加到对应职责下:
就可以提示请求去运行了。
运行的结果应该是在输入和日志中都打印出"inputv:"+参数内容。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15725751/viewspace-615270/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15725751/viewspace-615270/