ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracleEBS 调用 SHELL 的方法

oracleEBS 调用 SHELL 的方法

Linux操作系统 作者:zangchangyu 时间:2016-02-29 17:54:15 0 删除 编辑

Oracle EBS调用SHELL的方法

目前主要有4种类型:

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

2.       运用java source方法,

3.       调用包DBMS_SCHEDULER

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

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

http://blog.csdn.net/wzy0623/archive/2007/06/26/1666708.aspx

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

http://www.oracleappshub.com/aol/4-steps-for-host-based-concurrent-program/

 

一:设定主机并发程序的步骤(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 <script>

(例如:客制化的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.       在数据库中注册需要压缩文件所对应的目录

CREATE OR REPLACE DIRECTORY TVSN_REQUEST_OUTPUT_DIR AS '/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 id165256.1

1.       创建java source

注意:java 程序区分大小写

create or replace and compile java source named tvsncommand as

import java.io.*;

public class TvsnCommand{

  public static String 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.       创建封装函数:

CREATE OR REPLACE FUNCTION Tvsn_ExecuteCmd_Run(Command IN STRING)

  RETURN VARCHAR2 IS

  LANGUAGE JAVA NAME 'TvsnCommand.Run(java.lang.String)return int';

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

SQL>execute dbms_java.grant_permission( 'APPS','SYS:java.io.FilePermission','<<ALL FILES>>','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中注册!

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26373197/viewspace-2016833/,如需转载,请注明出处,否则将追究法律责任。

下一篇: XML 输出 EXCEL
请登录后发表评论 登录
全部评论

注册时间:2015-09-01

  • 博文量
    42
  • 访问量
    24972