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中注册!
oracle调用apps,oracleEBS 调用 SHELL 的方法相关推荐
- jsp运行linux脚本,jsp页面调用哪个Linux的shell 脚本步骤
当前位置:我的异常网» Linux/Unix » jsp页面调用哪个Linux的shell 脚本步骤 jsp页面调用哪个Linux的shell 脚本步骤 www.myexceptions.net 网 ...
- oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)
先对上一篇调用SQLServer的存储过程作一点补充,就是如果存储过程里有Insert,update,delete等操作,最后返回结果集,按示例代码有可能得不到数据,因为返回的数据有可能不在第一个结果 ...
- oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...
创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...
- PB调用DLL的常见问题及处理方法
PB调用DLL的常见问题及处理方法 首先,为方便描述,先假设有一个DLL文件,名称为 test.dll,里面有个函数叫test. 第一类:通用型标准DLL 1.调用约定问题.Windows系统的标准D ...
- .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出“指定的转换无效”异常的原因
.NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出"指定的转换无效"异常的原因 参考文章: (1).NET 调用JS:WebBrowse ...
- 如何调用AngularJS指令中定义的方法?
本文翻译自:How to call a method defined in an AngularJS directive? I have a directive, here is the code : ...
- php语言smtp类,php mailer类调用远程SMTP服务器发送邮件实现方法
这篇文章主要介绍了php mailer类调用远程SMTP服务器发送邮件实现方法,结合实例形式分析了php mailer类的调用及邮件发送相关技巧,需要的朋友可以参考下 本文实例讲述了php maile ...
- python有道api-python 调用有道api接口的方法
初学python ,研究了几天,写了一个python 调用 有道api接口程序 效果看下图: 申明:代码仅供和我一样的初学者学习交流 申请很简单的 ps:审核不用花时间的,请勿滥用!! #-*- co ...
- DedeCms如何调用Discuz论坛主题等数据方法总结
DedeCms如何调用Discuz论坛主题等数据方法总结 同时使用Dedecms和Discuz论坛的朋友,难免要在网站内调用论坛的内容.使用Discuz论坛的JS调用方式,对搜索引擎不够友好,下面我们 ...
最新文章
- 波士顿大学数学与计算机科学,2021战报 | 美国波士顿大学金融数学硕士录取
- 《网络攻防实践》第二周学习总结
- leetcode 721. 账户合并(并查集)
- Java_数组练习答案_Java数组练习题带答案.doc
- java 框架架构图_java框架之Spring 核心框架体系结构
- oracle11 rman全备,Oracle 11g非归档模式下mount状态RMAN究竟能不能进行全备?
- 整合SQL Server 2012和2014
- verilog实现多周期处理器之——(二)第一条指令ori的实现
- 双证书体系key usage扩展——Outlook使用证书发送加密签名邮件
- mysql 主从_mysql主从复制异常中断分析处理
- css grid随页面大小_前端三大布局,float,flex,grid的介绍。
- 使用打印方法将caj、pdz转pdf格式
- 国内知名的java商城系统排名
- 空洞骑士 Mac版 支持M1
- Androidadb驱动实现原理
- 好好说话之unlink
- 【HTTP Status 500 - Servlet execution threw an exception】
- Python3入门教程:Excel 基础操作(上)
- 修改html会影响seo,网站修改css影响seo吗?
- 量化交易中,如何快速把股票代码转换成Int整形?
热门文章
- 一篇讲autoconf/automake的好文章
- 超全MySQL学习笔记,416页满满知识,看完再也不怕学不会了
- [ Android实战 ] android query: BufferQueue has been abandoned 问题解决
- ResNet升级版(2):ResNeSt | ResNeSt: Split-Attention Networks
- DHU Matlab Experiment【5】作业记录_第五章、第六章
- 每日一题:字符串系列---判断一个字符串是否是对称字符串 * 例如“abc“不是对称字符串,“aba“、“abba“、“aaa“、“mnanm“是对称字符串
- pyqt5之眨眼检测
- PHP字符串计算函数
- Python入门(二十七)——线程深入复习(.tart()、 .join()、.setDaemon(True))
- ip被流量攻击怎么办