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

使用Java并发程序的好处:

当遇到如下2种情况的时候,用PLSQL程序包来完成将无比麻烦:

1、将服务器上的文件通过FTP安全有效的导入到apps环境下

2、使用JDBC连接一个非Oracle的数据库,并获取里面的数据,通过验证和转换导入到apps下的客制化表。对于上述假定,需要DBA建立透明网关,对于如此简单的需求将会做复杂的设置。

综上所述,可以在EBS中使用Java并发程序来解决这些事情。

如下为一个简单的例题并做简单说明:

import oracle.apps.fnd.cp.request.*;
import oracle.apps.fnd.util.*;

//如果是测试Java并发程序,则新建一个class实现JavaConcurrentProgram 这个interface

public class MainTest implements JavaConcurrentProgram {

//实现interface中的runProgram方法
    public 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!!!");
        }
    }
}

把程序挂到EBS中后,执行结果如下图所示:

log中显示如下(因为log中程序没有换行,所以写到了一行里面):

output中因为换行的原因,格式与log中的有一点不同,如下所示(左半部分为输入的参数的说明,右半部分则为程式打印的output):

转载于:https://www.cnblogs.com/echochen/archive/2011/11/17/2253148.html

EBS中Java并发程序笔记(1)相关推荐

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

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

  2. 【FND】EBS中Java并发程序开发

    开发步骤 下载相关标准包 fndutil.jar fndcp.jar fndctx.jar 下载目录$JAVA_TOP/oracle/apps/fnd/jar/ 写java类 定义包名规则: a. 如 ...

  3. java并发编程笔记_java并发编程笔记(一)——并发编程简介

    java并发编程笔记(一)--简介 线程不安全的类示例 public class CountExample1 { // 请求总数 public static int clientTotal = 500 ...

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

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

  5. Java并发编程笔记之 CountDownLatch闭锁的源码分析

    转 自: Java并发编程笔记之 CountDownLatch闭锁的源码分析 ​ JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 C ...

  6. ORACLE EBS 开发 用于并发程序的PL/SQL API

    ORACLE EBS 开发 用于并发程序的PL/SQL API 1.  FND_CONC_GLOBAL包 这个包用于从PL/SQL程序中提交子请求. u  函数FND_CONC_GLOBAL.REQU ...

  7. Java并发编程笔记(1)基础知识

    Java并发编程的三个性质 原子性 *在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行. *只有形如x = 10这种不可再分的赋值操作才有 ...

  8. 20W字纯手打Java并发学习笔记,助力你金三银四,决战春招,必进大厂

    假如阿里给了你这个机会,你却卡在三面,你会不会懊恼? 假如阿里真的让你通过,只需要你把这一块技能的底层原理摸透,你学不学? 我有一个朋友,他小厂背景.15年毕业.普通学校,这看起来确实没什么战斗力,但 ...

  9. Java并发编程笔记—摘抄—基础知识

    什么是线程安全 当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 竞态 ...

最新文章

  1. Android之 AndroidManifest xml 文件解析
  2. python怎么读文件夹下的文件夹-如何使用Python读取文件夹中的文件数量?
  3. 物理约束相关问题梳理
  4. 物料需求计划评估和订单创建
  5. Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
  6. 二分法变种小结(leetcode 34、leetcode33、leetcode 81、leetcode 153、leetcode 74)
  7. oracle修改成olap模式,的Oracle OLAP Java实现 - 正确源加入
  8. Labview 时间计数器 等待(ms) 等待下一个整数毫秒
  9. kettle优化抽取数据速度_基于kettle工具提高表输出写入速度(每秒万条记录)
  10. java-HDU1698(线段树的区间更新,和区间查询)
  11. 利用ajax如何根据权限加载目录,AJAX调用框架,包含权限验证
  12. c语言键盘函数空格,C语言中关于scanf函数的用法
  13. Sql根据身份证计算年龄和时间范围的条件查询
  14. 浅谈完备化及完备空间上的线性算子
  15. 西门子g120变频器接线图_西门子变频器G120如何通过速度限幅来避免飞车的发生...
  16. AI玩游戏系列,机器学习玩游戏(1) 一维游戏
  17. Threejs 加载3D模型
  18. 【沃顿商学院学习笔记】管理学——06腐败带来的间接成本和全球制裁状况Indirect Costs and Sanction
  19. andriod 连接数据库(MySQL)
  20. 云笔记+心情日记类APP推荐

热门文章

  1. 数据库设计注意事项和原则
  2. DOM-3 【utils/待讲评】节点属性、方法、封装方法、DOM结构
  3. Apache CarbonData 1.5.0编译及安装
  4. 怎么建立微信生态用户增长模型?
  5. 数组去重的各种方式对比
  6. Android 自定义WebView弹窗及屏蔽弹窗
  7. angularjs初始化时不显示模板内容, 不显示html, 不显示template
  8. 浙企加入中国大数据产业生态联盟 共商数据价值
  9. 《数据结构与抽象:Java语言描述(原书第4版)》一P.4.1 标识类
  10. mvn deploy 推送到私有仓库,注意当前日期