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中注册!

oracle调用apps,oracleEBS 调用 SHELL 的方法相关推荐

  1. jsp运行linux脚本,jsp页面调用哪个Linux的shell 脚本步骤

    当前位置:我的异常网» Linux/Unix » jsp页面调用哪个Linux的shell 脚本步骤 jsp页面调用哪个Linux的shell 脚本步骤 www.myexceptions.net  网 ...

  2. oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)

    先对上一篇调用SQLServer的存储过程作一点补充,就是如果存储过程里有Insert,update,delete等操作,最后返回结果集,按示例代码有可能得不到数据,因为返回的数据有可能不在第一个结果 ...

  3. oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  4. PB调用DLL的常见问题及处理方法

    PB调用DLL的常见问题及处理方法 首先,为方便描述,先假设有一个DLL文件,名称为 test.dll,里面有个函数叫test. 第一类:通用型标准DLL 1.调用约定问题.Windows系统的标准D ...

  5. .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出“指定的转换无效”异常的原因

    .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出"指定的转换无效"异常的原因 参考文章: (1).NET 调用JS:WebBrowse ...

  6. 如何调用AngularJS指令中定义的方法?

    本文翻译自:How to call a method defined in an AngularJS directive? I have a directive, here is the code : ...

  7. php语言smtp类,php mailer类调用远程SMTP服务器发送邮件实现方法

    这篇文章主要介绍了php mailer类调用远程SMTP服务器发送邮件实现方法,结合实例形式分析了php mailer类的调用及邮件发送相关技巧,需要的朋友可以参考下 本文实例讲述了php maile ...

  8. python有道api-python 调用有道api接口的方法

    初学python ,研究了几天,写了一个python 调用 有道api接口程序 效果看下图: 申明:代码仅供和我一样的初学者学习交流 申请很简单的 ps:审核不用花时间的,请勿滥用!! #-*- co ...

  9. DedeCms如何调用Discuz论坛主题等数据方法总结

    DedeCms如何调用Discuz论坛主题等数据方法总结 同时使用Dedecms和Discuz论坛的朋友,难免要在网站内调用论坛的内容.使用Discuz论坛的JS调用方式,对搜索引擎不够友好,下面我们 ...

最新文章

  1. 波士顿大学数学与计算机科学,2021战报 | 美国波士顿大学金融数学硕士录取
  2. 《网络攻防实践》第二周学习总结
  3. leetcode 721. 账户合并(并查集)
  4. Java_数组练习答案_Java数组练习题带答案.doc
  5. java 框架架构图_java框架之Spring 核心框架体系结构
  6. oracle11 rman全备,Oracle 11g非归档模式下mount状态RMAN究竟能不能进行全备?
  7. 整合SQL Server 2012和2014
  8. verilog实现多周期处理器之——(二)第一条指令ori的实现
  9. 双证书体系key usage扩展——Outlook使用证书发送加密签名邮件
  10. mysql 主从_mysql主从复制异常中断分析处理
  11. css grid随页面大小_前端三大布局,float,flex,grid的介绍。
  12. 使用打印方法将caj、pdz转pdf格式
  13. 国内知名的java商城系统排名
  14. 空洞骑士 Mac版 支持M1
  15. Androidadb驱动实现原理
  16. 好好说话之unlink
  17. 【HTTP Status 500 - Servlet execution threw an exception】
  18. Python3入门教程:Excel 基础操作(上)
  19. 修改html会影响seo,网站修改css影响seo吗?
  20. 量化交易中,如何快速把股票代码转换成Int整形?

热门文章

  1. 一篇讲autoconf/automake的好文章
  2. 超全MySQL学习笔记,416页满满知识,看完再也不怕学不会了
  3. [ Android实战 ] android query: BufferQueue has been abandoned 问题解决
  4. ResNet升级版(2):ResNeSt | ResNeSt: Split-Attention Networks
  5. DHU Matlab Experiment【5】作业记录_第五章、第六章
  6. 每日一题:字符串系列---判断一个字符串是否是对称字符串 * 例如“abc“不是对称字符串,“aba“、“abba“、“aaa“、“mnanm“是对称字符串
  7. pyqt5之眨眼检测
  8. PHP字符串计算函数
  9. Python入门(二十七)——线程深入复习(.tart()、 .join()、.setDaemon(True))
  10. ip被流量攻击怎么办