开发步骤

  1. 下载相关标准包
    fndutil.jar
    fndcp.jar
    fndctx.jar
    下载目录$JAVA_TOP/oracle/apps/fnd/jar/

  2. 写java类
    定义包名规则:
    a. 如果完成后只有简单的class类,则定义报名的路径要和上传到服务器的路径一致,如package oracle.apps.hqc; 则class文件需要上传到$JAVA_TOP/oracle.apps.hqc/目录下;
    b. 如果项目比较复杂最好打包成jar,然后上传到服务器指定的目录
    类说明:
    自己的类必须实现JavaConcurrentProgram接口,并且实现并发入口函数runProgram(CpContext ctx)

  3. 发布注册
    3.1 发布java程序
    a. 如果只有简单的class类,则上传到服务器的包名路径,如package oracle.apps.hqc; 则class文件需要上传到$JAVA_TOP/oracle.apps.hqc/目录下即可,并发管理器会自动找到class文件;
    b. 如果程序打包成jar包则可以上传到$JAVA_TOP中指定的目录,然后有两种方式引用jar包:
    方法一:修改$APPL_TOP/admin/adovars.env里的CLASSPATH和AF_CLASSPATH,把jar的绝对路径添加进去,然后重启并发管理器。
    方法二:在并发程序的选项上增加如下内容:

-classpath <path_to_your_custom.jar>/custom.jar:<path_to_JAVA_TOP>:<path_to_appsborg.zip>/appsborg.zip
---绝对路径
<path_to_appsborg.zip> = $COMMON_TOP/java/lib/appsborg.zip
例如:
-classpath /u1/TEST52/apps/apps_st/comn/java/classes/hqc/Loadjava/EBSExcel.jar:/u1/TEST52/apps/apps_st/comn/java/classes:/u1/TEST52/apps/apps_st/comn/java/lib/appsborg.zip
R12.2环境
1、上传com文件夹到$JAVA_TOP下
2、编译object、package
3、注册请求R12.2.10中POI3.10已在ebs3rdpartyManifest.jar中,ebs3rdpartyManifest.jar已在classpath
$COMMON_TOP/shared-libs/ebs-3rdparty/WEB-INF/lib/ebs3rdpartyManifest.jarR12.1.3
1、上传CuxFndExcel.jar至$JAVA_TOP/oppo
2、编译object、package
3、注册请求
-Xms512M -Xmx1024M -classpath /u1/TEST52/apps/apps_st/comn/java/classes/oppo/CuxFndExcel.jar:/u1/TEST52/apps/apps_st/comn/java/classes:/u1/TEST52/apps/apps_st/comn/java/lib/appsborg.zip

参考:
1.Classpath Setting of Third Party Jar Files in R12 Java Concurrent Program (JCP) (文档 ID 1292694.1)
2.Path for java/appsborg2.zip in R12

3.2 并发请求注册

执行方法:Java并发程序
执行文件名:类名
执行文件路径:包名

并发请求设置同其他并发程序,略

  1. 示例
package oracle.apps.hqc;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.ReqCompletion;
import oracle.apps.fnd.util.NameValueType;
import oracle.apps.fnd.util.ParameterList;public class TestHqc implements JavaConcurrentProgram {@Overridepublic void runProgram(CpContext ctx) {//取得并发程序传入的参数列表ParameterList lPara = ctx.getParameterList();ReqCompletion lrc = ctx.getReqCompletion();try{//把参数名字和参数的值分别在log和output中打印出来while(lPara.hasMoreElements()){NameValueType nvt = lPara.nextParameter();ctx.getOutFile().writeln(nvt.getName() + ":" + nvt.getValue());ctx.getLogFile().write(nvt.getName() + ":" + nvt.getValue(), LogFile.STATEMENT);}//完成打印的步骤后,设置程序的结束状态为Normal,如果这个步骤不做,虽然程序没有错误,但是执行结果还是会报错的lrc.setCompletion(ReqCompletion.NORMAL, "Normal Ending");}catch(Exception e){//如果程序出现异常,设置程序的执行结果,本来是应该设置ERROR的ctx.getLogFile().write(e.toString(), LogFile.STATEMENT);lrc.setCompletion(ReqCompletion.WARNING, "Exception Occurs!!!");}}
}

5、FQA

1)idea打包jar运行报错
Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
解决:使用压缩软件打开jar包 删除:META-INF目录下的除了mainfest.mf,.rsa及maven文件夹 以外的其他所有文件

2)使用高版本jdk报错
java.lang.UnsupportedClassVersionError: com/oppo/ebs/DemoHqc : Unsupported major.minor version 52.0
解决:换用jdk1.6打包

参考文献

  1. https://www.docin.com/p-373932599.html
  2. https://blog.csdn.net/sunansheng/article/details/51837077
  3. https://www.cnblogs.com/echochen/archive/2011/11/17/2253148.html
    https://www.cnblogs.com/echochen/archive/2012/01/02/2309735.html
    4.OAF_开发系列25_实现OAF中Java类型并发程式开发oracle.apps.fnd.cp.request(概念)
    5.http://www.javashuo.com/article/p-qdyomcqb-he.html

【FND】EBS中Java并发程序开发相关推荐

  1. EBS中Java并发程序笔记(1)

    在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...

  2. ebs java并发_EBS中Java并发程序笔记(1)

    在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...

  3. PPT | 云客堂——云服务助力Java 应用程序开发及部署

    这里将最近录的视频课程的PPT分享给大家,课程内容主要围绕 IBM Bluemix 云平台的学习与应用.这是一个课程系列,最初命名为"步云之道--课间10分钟",现在改为" ...

  4. exchange java对象,【原】Java并发程序的一个应用Exchanger的实例

    [原]Java并发程序的一个使用Exchanger的实例 今天看了些Exchanger的资料,有个喝水的例子不错.我这里细化了以下,并得到实现. 思路: 有一个Drinker和一个Waiter,有两个 ...

  5. Visual Studio 中的应用程序开发

    Visual Studio 中的应用程序开发 http://msdn.microsoft.com/zh-cn/library/h8w79z10(v=VS.90).aspx 转载于:https://ww ...

  6. Java桌面程序开发——如何开发美观漂亮好看的桌面程序

    大家想到使用Java这门编程语言大多是脑海中是浮现的B/S开发,高并发.云计算.大数据等等,今天给大家带来的是Java不一样的使用方式--使用Java做PC桌面程序开发. 不同的是,之前Java是使用 ...

  7. 【转】Java桌面程序开发——如何开发美观漂亮好看的桌面程序

    大家想到使用Java这门编程语言大多是脑海中是浮现的B/S开发,高并发.云计算.大数据等等,今天给大家带来的是Java不一样的使用方式--使用Java做PC桌面程序开发. 不同的是,之前Java是使用 ...

  8. Java并发编程开发笔记——2线程安全性

    在构建稳健的并发程序时,必须正确地使用线程和锁.但这些终归只是一些机制.要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问. ...

  9. Java应用程序开发

    Java应用程序(awt)图标更改: 主要使用Toolkit来createImage,然后使用Frame的方法来setIconImage,已达到相应的效果 http://www.shangxueba. ...

最新文章

  1. 数据结构源码笔记(C语言):直接插入排序
  2. Python Django开发案例:POST方式实现登录功能
  3. git比较当前工作区和之前提交的内容差异
  4. 机器学习基石-作业二-第10题分析
  5. python和易语言爬虫速度_如何优化 Python 爬虫的速度?
  6. 错误票据java_【蓝桥杯】错误票据 - osc_bskh1wlw的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 模板设计模式_23种设计模式之模板设计模式
  8. Grep命令学习笔记(转)
  9. 毕设系统之网上订餐管理系统
  10. python写文件指定编码_python指定写入文件时的编码格式方法
  11. spring源码解析——@Component注解原理
  12. VideoView播放视频的时候尺寸异常
  13. 吴晓波最劲爆演讲:终于把传统行业的转型升级都讲清楚了
  14. ntp 服务 --Centos
  15. java中二维数组的长度
  16. ISO26262第二版发布
  17. 为数据而生:大数据创新实践八步骤
  18. python二级题库(百分之九十原题) 刷题软件推荐 第三套
  19. 一文搞懂从浏览器输入一个URL到页面出现都经历了哪些过程
  20. 2016初中计算机考试试题,2016年计算机二级考试MS Office习题及答案

热门文章

  1. 关于计算机的英语笑话,最经典的英语笑话,戳中你的笑点了吗?
  2. 【土旦】 使用Vant 的Uploader 上传图片 重定义返回格式 使用FormData格式提交
  3. OpenCV (c++)使用KDTree时,得到正确结果后报Segmentation fault (core dumped)
  4. Linux磁盘相关-分区与修复
  5. 【HTTP Status 500 - Servlet execution threw an exception】
  6. 丰富网页摘要——HTML5中的“微数据”(MicroData)
  7. 第一个RSF自动化测试用例-启动打开百度页面,搜索【月饼】关键字,关闭浏览器...
  8. 虚拟机挂载优盘和识别优盘
  9. java和大行自行车哪个好_全面解析曝光大行折叠自行车d8和p8配置有什么区别?哪个好?优缺点内幕透露...
  10. 区块链的概念定义是什么