package com.xxt.ebs.request;
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
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.util.NameValueType;
import oracle.apps.fnd.util.ParameterList;
public class CUX_REQUEST_OUTPUT_EXCEL
implements JavaConcurrentProgram
{
public void runProgram(CpContext ctx)
{
ParameterList lPara = ctx.getParameterList();
ReqCompletion lrc = ctx.getReqCompletion();
LogFile LOG_FILE = ctx.getLogFile();
String paramName = "";
String paramValue = "";
int request_id = -1;
String excelType = "";
String outFile = "";
String fileName = "";
try
{
//Loger.init(ctx.getLogFile());
while (lPara.hasMoreElements()) {
NameValueType nvt = lPara.nextParameter();
paramName = nvt.getName();
paramValue = nvt.getValue();
if ("REQUEST_ID".equals(paramName.toUpperCase().trim())) {
request_id = Integer.parseInt(paramValue);
//Loger.log("参数:request_id = " + request_id);
LOG_FILE.writeln("参数:request_id = " + request_id, 0);
} else if ("EXCEL_TYPE".equals(paramName.toUpperCase().trim())) {
excelType = paramValue;
//Loger.log("参数:excel_type = " + excelType);
LOG_FILE.writeln("参数:excel_type = " + excelType, 0);
} else if ("OUT_FILE".equals(paramName.toUpperCase().trim())) {
outFile = paramValue;
//Loger.log("参数:out_file = " + outFile);
LOG_FILE.writeln("参数:out_file = " + outFile, 0);
} else if ("FILE_NAME".equals(paramName.toUpperCase().trim())) {
fileName = paramValue;
//Loger.log("参数:file_name = " + fileName);
LOG_FILE.writeln("参数:file_name = " + fileName, 0);
}
}
//Loger.log("开始生成Excel输出..");
LOG_FILE.writeln("开始生成Excel输出..", 0);
if ("".equals(outFile)) {
LOG_FILE.writeln("请求:" + request_id + ",无法找到输出文件..",0);
//Loger.release();
lrc.setCompletion(1, "No output file!!!");
}
else
{
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser parser = parserFactory.newSAXParser();
Xml2ExcelHandler h = new Xml2ExcelHandler(fileName, excelType);
parser.parse(outFile, h);
String fileSize = String.valueOf(new File(fileName).length());
LOG_FILE.writeln("fileName=[" + fileName + "],fileSize=" + fileSize,0);
LOG_FILE.writeln("生成Excel输出完成...",0);
//Loger.release();
lrc.setCompletion(0, fileSize);
}
} catch (Exception e) {
LOG_FILE.writeln(e.toString(),0);
//Loger.release();
lrc.setCompletion(2, "Exception Occurs!!!");
}
}
}
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();
}
}
参考资料:
http://blog.csdn.net/cunxiyuan108/article/details/7677773
http://blog.csdn.net/cunxiyuan108/article/details/7677758
http://www.cnblogs.com/echochen/archive/2011/11/17/2253148.html
http://www.lai18.com/content/5773188.html?from=cancel