20150730 Created By BaoXinjian
一、摘要
并发程序调用Java类型的Concurrent Program
主要实现类
1. runProgram(CpContext cpContext):并发程序导入接口
2. cpcontext.getParameterList():获取参数Parameters Hashtable
3. cpContext.getReqCompletion(): 获取并程序运行状态设定
4. cpContext.getLogFile():输出日志
5. cpContext.getOutFile():输出报表
二、实现分析
1. 开发Java ConcProg的实例应用
package bxj.oracle.apps.ap.java;
import java.util.Hashtable;
import oracle.apps.fnd.cp.request.CpContext; import oracle.apps.fnd.cp.request.JavaConcurrentProgram; import oracle.apps.fnd.cp.request.LogFile; import oracle.apps.fnd.cp.request.OutFile; import oracle.apps.fnd.cp.request.ReqCompletion; import oracle.apps.fnd.cp.request.ReqDetails; import oracle.apps.fnd.util.NameValueType; import oracle.apps.fnd.util.ParameterList; public class runEmpConcProg implements JavaConcurrentProgram{ private LogFile mLogFile; private OutFile mOutFile; // 主程序处理Employee信息 public void processEmpInform(CpContext cpContext) { String strUserId; String strLoginId; String strRespId; String strRespApplId; String strOrgId; String strBeginDate; String p_employee_id; String p_country; ReqCompletion reqc; ReqDetails reqd; Hashtable hashtable = new Hashtable(); collectParameters(cpContext, hashtable); ReqDetails mReqDetails = cpContext.getReqDetails(); int lp_requestID = mReqDetails.getRequestId(); try { collectParameters(cpContext, hashtable); if ((hashtable.get("USERID") != null & ("".equals(hashtable.get("USERID")) ^ true))) strUserId = (String)hashtable.get("USERID"); else { strUserId = String.valueOf(cpContext.getUserId()); } if ((hashtable.get("LOGINID") != null & ("".equals(hashtable.get("LOGINID")) ^ true))) { strLoginId = (String)hashtable.get("LOGINID"); } else strLoginId = String.valueOf(cpContext.getLoginId()); if ((hashtable.get("RESPID") != null & ("".equals(hashtable.get("RESPID")) ^ true))) strRespId = (String)hashtable.get("RESPID"); else { strRespId = String.valueOf(cpContext.getRespId()); } if ((hashtable.get("RESPAPPLID") != null & ("".equals(hashtable.get("RESPAPPLID")) ^ true))) strRespApplId = (String)hashtable.get("RESPAPPLID"); else { strRespApplId = String.valueOf(cpContext.getRespApplId()); } strOrgId = (String)hashtable.get("ORGID"); strBeginDate = (String)hashtable.get("BEGINDATE"); if ((hashtable.get("EMPLOYEE_ID") != null & ("".equals(hashtable.get("EMPLOYEE_ID")) ^ true))) p_employee_id = (String)hashtable.get("EMPLOYEE_ID"); else { p_employee_id = null; } if ((hashtable.get("COUNTRY") != null & ("".equals(hashtable.get("COUNTRY")) ^ true))) p_country = (String)hashtable.get("COUNTRY"); else { p_country = null; } System.out.println("Parameters:" + strUserId + "/" + strLoginId + "/"
+ strRespId + "/" + strRespApplId + "/" + strOrgId + "/" + strBeginDate); System.out.println("p_employee_id=" + p_employee_id ); System.out.println("p_country=" + p_country ); reqc = cpContext.getReqCompletion(); reqd = cpContext.getReqDetails(); cpContext.getReqCompletion().setCompletion(ReqCompletion.NORMAL, ""); } catch(Exception ex) { cpContext.getLogFile().writeln("Concurent Program Exception: " + ex.getMessage(), 1); cpContext.getReqCompletion().setCompletion(ReqCompletion.NORMAL, ""); ex.printStackTrace(); } } //获取并发程序参数 private void collectParameters(CpContext cpcontext, Hashtable hashtable) { ParameterList parameterlist = cpcontext.getParameterList(); while (parameterlist.hasMoreElements()) { NameValueType namevaluetype = parameterlist.nextParameter(); String s = namevaluetype.getName(); String s1 = namevaluetype.getValue(); this.mLogFile.writeln(s + ": " + s1, 3); if ((s1 != null) && (s1.length() > 0)) hashtable.put(s, s1); } } // 并发程式调用该Java包的接入程序RunProgram public void runProgram(CpContext cpContext) { mLogFile = cpContext.getLogFile(); mOutFile = cpContext.getOutFile(); mLogFile.writeln("Start runProgram", 0); processEmpInform(cpContext); mLogFile.writeln("END runProgram", 0); mOutFile.writeln("gavin test outfile"); } public runEmpConcProg() { } public static void main(String[] args) { System.out.println("main(String[] args"); runEmpConcProg runEmpConcProg = new runEmpConcProg(); } }
2. 将编译后的class包上传到应用服务器
3.1 注册可执行程序
3.2 注册并发程序,并定义参数
三、运行测试
1. 调用并发程序,并输入参数
2. 查看并程序的Output和Log
3. 查看并程序的View Log
3. 查看并程序的View Output
Thanks and Regards
参考: 豆丁文库 - http://www.docin.com/p-373932599.html
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建