ORACLE EBS :Oracle.apps.fnd.cp.request 并发常用JAVA方法

日志打印

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值