DECLARE
l_error_flag VARCHAR2(1);
l_menu_rowid VARCHAR2(100);
l_menu_entity_rowid VARCHAR2(100);
l_menu_id NUMBER;
l_cnt NUMBER := 0;
c_new_menu_code CONSTANT VARCHAR2(50) := 'CUX_MDM_MENU_SYS_GROUP'; ----新的菜单简称
c_new_menu_name CONSTANT VARCHAR2(100) := 'CUX_MDM菜单_运维_集团'; --用户菜单名
c_copied_menu_code CONSTANT VARCHAR2(50) := 'CUX_MDM_MENU_SYS'; --被复制的菜单名 CURSOR csr_menu_entity IS
SELECT DISTINCT fme.entry_sequence,
fme.sub_menu_id,
fme.function_id,
fme.grant_flag,
fmet.prompt,
fmet.description
FROM fnd_menu_entries fme,
fnd_menu_entries_tl fmet,
fnd_menus fm
WHERE fme.menu_id = fm.menu_id
AND fmet.menu_id = fm.menu_id
AND fmet.entry_sequence = fme.entry_sequence
AND fm.menu_name = c_copied_menu_code; BEGIN
SELECT fnd_menus_s.nextval
INTO l_menu_id
FROM dual;
l_error_flag := 'N'; fnd_menus_pkg.insert_row(x_rowid => l_menu_rowid,
x_menu_id => l_menu_id,
x_menu_name => c_new_menu_code,
x_user_menu_name => c_new_menu_name,
x_menu_type => NULL,
x_description => NULL,
x_creation_date => SYSDATE,
x_created_by => fnd_global.user_id,
x_last_update_date => SYSDATE,
x_last_updated_by => fnd_global.user_id,
x_last_update_login => fnd_global.login_id);
IF l_menu_rowid IS NULL THEN
dbms_output.put_line('error:' || SQLERRM);
l_error_flag := 'Y';
ELSE
FOR l_menu_entity_rec IN csr_menu_entity LOOP fnd_menu_entries_pkg.insert_row(x_rowid => l_menu_entity_rowid,
x_menu_id => l_menu_id,
x_entry_sequence => l_menu_entity_rec.entry_sequence,
x_sub_menu_id => l_menu_entity_rec.sub_menu_id,
x_function_id => l_menu_entity_rec.function_id,
x_grant_flag => l_menu_entity_rec.grant_flag,
x_prompt => l_menu_entity_rec.prompt,
x_description => l_menu_entity_rec.description,
x_creation_date => SYSDATE,
x_created_by => fnd_global.user_id,
x_last_update_date => SYSDATE,
x_last_updated_by => fnd_global.user_id,
x_last_update_login => fnd_global.login_id); IF l_menu_rowid IS NULL THEN
dbms_output.put_line('error:' || SQLERRM);
l_error_flag := 'Y';
ELSE
l_cnt := l_cnt + 1;
END IF;
END LOOP;
END IF; IF l_error_flag = 'N' AND l_cnt > 0 THEN
dbms_output.put_line('提交编译请求:' || fnd_menu_entries_pkg.submit_compile);
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLCODE || ',' || SQLERRM);
END;
 
 

【EBS】菜单的复制脚本的更多相关文章

  1. Shell实现多级菜单系统安装维护脚本实例分享

    Shell实现多级菜单系统安装维护脚本实例分享 这篇文章主要介绍了Shell实现多级菜单系统安装维护脚本实例分享,本文脚本用多级菜单实现管理WEB服务器.Mysql服务器.Nginx服器等,需要的朋友 ...

  2. js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中(转)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. JS屏蔽右键菜单,复制,粘帖xxxxx........

    //屏蔽右键菜单 document.oncontextmenu = function (event) { if (window.event) { event = window.event; } try ...

  4. JavaScript 中禁止用户右键菜单,复制,选取,Ctrl,Alt,Shift. 获取宽高,清除浮动

    //禁用右键菜单 document.oncontextmenu = function(){ event.returnValue = false; } //禁用选取内容 document.onselec ...

  5. Ubuntu下使用dialog制作菜单执行简单脚本

    新建test5 #!/bin/bash #using select in the menu temp=$(mktemp -t test.XXXXXX) temp2=$(mktemp -t test2. ...

  6. 支付宝吱口令自动复制脚本,自动复制 JavaScript 代码介绍

    本文转自:http://www.sojson.com/blog/262.html 最近支付宝#吱口令#的信息随处可见,可谓是铺天盖地,群里发这样的信息给被踢了不少.我开始还在鄙视这些人,有几个小钱?然 ...

  7. MSSQL 数据库复制脚本

    --新表存在复制数据 insert into 新表 (字段) select 字段 from 旧表 -- 新表不存在复制数据 select * into 新表 from 旧表

  8. JQuery实现复制数据到剪贴板之各种麻花与右键点击弹出选择菜单

    1.如果小伙伴们只是想实现点击某个按钮(通过click事件)实现复制功能. 那小哥哥我在这里推荐大家使用2个非常好用的插件 (1)clipboard.js:纯js插件,无需flash,相对来说更轻量级 ...

  9. Beyond Compare 3添加右键菜单

    目前是在Beyond Compare 3.1.9版本上试验可行,其他版本上尚未测试. 添加右键菜单步骤: 1.新建为.bat后缀的文本,将下面“添加右键菜单批处理”复制到此文本中. 2.将批处理移动到 ...

随机推荐

  1. OpenVSwitch

    参考: https://opengers.github.io/openstack/openstack-base-use-openvswitch/ 这篇原理部分就不贴出来了,请自行参考上文,并根据自行实 ...

  2. GoCN每日新闻(2019-10-31)

    GoCN每日新闻(2019-10-31) GoCN每日新闻(2019-10-31) 1. Go语言继承的其他语言的优秀之处 https://spf13.com/presentation/the-leg ...

  3. nginx 访问控制之 限速

    nginx限速可以通过 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模块来实现限速的功能. 一.ngx_http_limit_conn ...

  4. 1045-Access denied for user 'root'@'localhost'解决方法

    1.出现这个问题的原因之一是权限的问题,也就是说你的电脑可能没有权限访问mysql数据库. 讲道理这种情况其实基本上不该遇到,因为我们在安装mysql之后,root其实是有最高权限的,而且很少会有人去 ...

  5. Java NIO 堆外内存与零拷贝

    一.直接缓存 这个例子的区别就是 ByteBuffer.allocateDirect(512); 进入allocateDirect方法 进入DirectByteBuffer构造函数 Native方法: ...

  6. PHP系列 | [转] PHP中被忽略的性能优化利器:生成器

    官方:https://www.php.net/manual/zh/language.generators.overview.php 原文:https://segmentfault.com/a/1190 ...

  7. 配置Zuul代理下游的认证

    配置Zuul代理下游的认证 您可以通过proxy.auth.*设置控制@EnableZuulProxy下游的授权行为.例: application.yml proxy: auth: routes: c ...

  8. QT自定义信号和槽

    最近项目中使用到QT,在此记录一下QT的核心,信号与槽: QObject::connect(const QObject *sender, const char *signal, const QObje ...

  9. webRTC 基础介绍

    WebRTC 全称为:Web Real-Time Communication.它是为了解决 Web 端无法捕获音视频的能力,并且提供了 peer-to-peer(就是浏览器间)的视频交互.实际上,细分 ...

  10. Tesserac初探

    安装Tesseract Windows 系统 下载可执行安装文件https://code.google.com/p/tesseract-ocr/downloads/list安装.或者https://d ...