oracle调用apps,oracleEBS 调用 SHELL 的方法

Oracle EBS调用SHELL的方法

目前主要有4种类型:

1.调用包dbms_pipe,此方法需要调用proc程序

2.运用java source方法,

3.调用包DBMS_SCHEDULER

4.运用EBS的功能,编写主机并发程序(Host based concurrent program)

说明:对于方法1-3,参考以下地址:

本文档重点说明第二,第四种方法:参考文档如下:

一:设定主机并发程序的步骤(Steps for Host based concurrent program)

1.创建一个脚本,并且扩展名保存为.prog,然后放在application top bin($XX_TOP/bin)的文件夹下(例如客制化的application名字叫TVSN,则脚本应该放在$TVSN_TOP/bin下)

2.在路径为$XX_TOP/bin目录下建立连接:ln -s $FND_TOP/bin/fndcpesr

(例如:客制化的application名字叫TVSN,则在该$TVSN_TOP/bin目录下,运行该命令)

注意:该命令中的脚本名字不能带.prog后缀

3.在EBS中注册该程序(和挂report的方法一致)

系统管理员->并发->程序 ->执行

系统管理员 ->并发->程序 ->定义

系统管理员 ->安全性->职责 ->请求

注意:注册执行时,程序的执行方法选择“主机”(HOST)

执行名中的脚本名称不带.prog

4.补充说明:

.prog脚本的说明:

a).prog脚本必须至少包含4个参数,用$1 ,$2,$3,$4,与它们对应

SQL_USER_PASS=${FCP_LOGIN-$1} –是数据库APPS帐户的密码

APP_USER_ID=$2--是当前的用户ID

APP_USER_NAME=$3--取得当前用户的名称

P_CONC_REQUEST_ID=$4--是并发请求的提交ID

b) shell脚本运行成功,返回0,如果遇到错误,则使用结束命令(exit 1)返回

c)创建完脚本后,必须与$FND_TOP目录下的fndcpesr进行链接,(fndcpesr主要用于应用对于shell脚本的编译)

测试范例:

1.在数据库中注册需要压缩文件所对应的目录

CREATEORREPLACEDIRECTORYTVSN_REQUEST_OUTPUT_DIRAS'/d01/testcomn/admin/out/TEST_oracleapp'

2.创建.prog脚本:

并将该脚本传到$TVSN_TOP/bin目录下面

3.建立连接:

ln -s $FND_TOP/bin/fndcpesr /d01/testappl/tvsn/1.0.0/bin/TVSN_ZIPFILE

4.在ebs中注册:

系统管理员->并发->程序->执行

Executable

TVSN_FILEZIP

Short Name

TVSN_FILEZIP

Description

Application

TVSN Customization

Execution Method

Host

Execution File Name

TVSN_ZIPFILE

系统管理员->并发->程序->定义

Program

TVSN_ZIPFILE

Short Name

TVSN_ZIPFILE

Description

Application

TVSN Customization

Execution Name

TVSN_ZIPFILE

Output Format

Text

Output Columns

Output Rows

Output Style

Seq

Parameter

Token

Value Set

Default Type

Default value

Required

Display

Size

(Display/Description/Concatenated)

Prompt

10

virual_dir

240 Characters

N

Y

50

路径

20

zip_filename

240 Characters

N

Y

50

文件名

二:关于使用JAVA SOURCE调用OS的步骤(Steps for java source)

说明:参考文档:metalink doc id:165256.1

1.创建java source:

注意:java程序区分大小写

create or replace and compile java source named tvsncommand as

importjava.io.*;

publicclassTvsnCommand{

publicstaticString Run(String Command){

try{

Runtime.getRuntime().exec(Command);

return("0");

}

catch(Exception e){

System.out.println("Error running command: "+ Command +

"\n"+ e.getMessage());

return(e.getMessage());

}

}

}

2.创建封装函数:

CREATEORREPLACEFUNCTIONTvsn_ExecuteCmd_Run(CommandINSTRING)

RETURNVARCHAR2IS

LANGUAGEJAVANAME'TvsnCommand.Run(java.lang.String)return int';

3.以sys或者system帐户登陆sqlplus,为数据库用户分配权限:

SQL>execute dbms_java.grant_permission( 'APPS','SYS:java.io.FilePermission','<>','execute');

SQL>execute dbms_java.grant_permission( 'APPS','SYS:java.lang.RuntimePermission','*','writeFileDescriptor');

SQL>execute dbms_java.grant_permission( 'APPS','SYS:java.lang.RuntimePermission','*','readFileDescriptor');

SQL>COMMIT;

说明:APPS为数据库用户,必须大写

4.使用该程序包时需要注意操作目录的权限问题,对于需要操作的目录,必须先在dba_directories中注册!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值