澳门金沙vip 69

澳门金沙vip转:ORACLEERP开发基础之EBS开发基础

在Procedure中p_receiver为收件人地址,多收件人以“,”分割,
p_sub为邮件标题,p_txt为邮件内容。代码如下:

转自:

复制代码 代码如下:create or replace
procedure bsd_sendemail (p_receiver varchar2,p_sub varchar2,p_txt
varchar2) is p_user varchar2(30) := ”; p_pass varchar2(30) := ”;
p_sendor varchar2(20) := ‘Gnie’; p_server varchar2(20) :=
‘Mail_Server_IP’; p_port number := 25; p_need_smtp number := 0;
p_subject varchar2(4000); l_crlf varchar2(2) := utl_tcp.crlf;
l_sendoraddress varchar2(4000); l_splite varchar2(10) := ‘++’;
boundary constant varchar2(256) := ‘—–BYSUK’; first_boundary
constant varchar2(256) := ‘–‘ || boundary || l_crlf; last_boundary
constant varchar2(256) := ‘–‘ || boundary || ‘–‘ || l_crlf;
multipart_mime_type constant varchar2(256) := ‘multipart/mixed;
boundary=”‘ || boundary || ‘”‘;

【内容导航】

type address_list is table of varchar2(100) index by binary_integer;
my_address_list address_list;
—————————————分割邮件地址———————————————-
procedure p_splite_str(p_str varchar2,p_splite_flag int default 1)
is l_addr varchar2(254) := ”; l_len int; l_str varchar2(4000State of Qatar; j int
:= 0; –表示邮件地址只怕附属类小零件的个数 begin
/*管理选拔邮件地址列表,包蕴去空格、将;调换为,等*/ l_str :=
trim(rtrim(replace(replace(p_str, ‘;’, ‘,’), ‘ ‘, ”), ‘,’)); l_len :=
length(l_str); for i in 1 .. l_len loop if substr(l_str, i, 1) ‘,’
then l_addr := l_addr || substr(l_str, i, 1); else j := j + 1; if
p_splite_flag = 1 then –代表管理邮件地址
–前后须要加上”,否则广大信箱将不能够发送邮件 l_addr := ” || l_addr ||
”; –调用邮件发送进度 my_address_list(j) := l_addr; end if; l_addr
:= ”; end if; if i = l_len then j := j + 1; if p_splite_flag = 1
then –调用邮件发送进程 l_addr := ” || l_addr || ”;
my_address_list(j) := l_addr; end if; end if; end loop; end;
————————————————写邮件头和邮件内容——————————————
procedure write_data(p_conn in out nocopy utl_smtp.connection,
p_name in varchar2, p_value in varchar2, p_splite varchar2 default
‘:’, p_crlf varchar2 default l_crlf) is begin /*
utl_raw.cast_to_raw 对消除汉语乱码问题很关键*/
utl_smtp.write_raw_data(p_conn,
utl_raw.cast_to_raw(convert(p_name||p_splite||p_value ||p_crlf,
‘ZHS16CGB231280’卡塔尔State of Qatar卡塔尔(قطر‎; end;
—————————————-写mime邮件后面部分—————————————————–
procedure end_boundary(conn in out nocopy utl_smtp.connection, last in
boolean default false) is begin utl_smtp.write_data(conn,
utl_tcp.crlf); if (last) then utl_smtp.write_data(conn,
last_boundary卡塔尔(قطر‎; end if; end;
———————————————真正发送邮件的进度——————————————–
procedure p_email(p_sendoraddress2 varchar2, –发送地址
p_receiveraddress2 varchar2卡塔尔 –选用地方 is l_conn
utl_smtp.connection; –定义连接 begin
/*初步化邮件服务器音信,连接邮件服务器*/ l_conn :=
utl_smtp.open_connection(p_server, p_port); utl_smtp.helo(l_conn,
p_server); /* smtp服务器登入校验 */ if p_need_smtp = 1 then
utl_smtp.command(l_conn, ‘AUTH LOGIN’, ”); utl_smtp.command(l_conn,
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(p_user))));
utl_smtp.command(l_conn,
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(p_pass))));
end if;

  • 第1页:开垦工具安装
  • 第2页:扩充数据块
  • 第3页:注册表单FORM
  • 第4页:挂号央浼

  • 第5页:注册职分

  • 第6页:挂号值集
  • 第7页:通过使用开荒员获得系统管理员权利
  • 第8页:号令的出口及日志
  • 第9页:手动提交哀求示例
  • 第10页:客制化右键菜单
  • 第11页:贯彻文件夹功用
  • 第12页:成立调整块MY_FOLDER_PROMPT
  • 第13页:兑现手电筒查找的效果与利益
  • 第14页:EBS的法规查询办法
  • 第15页:自定义代码
  • 第16页:登记认证性弹性域
  • 第17页:调用会计科目弹性域
  • 第18页:EBS自定义邮件公告
  • 第19页:EBS配置文件(Profile卡塔尔(قطر‎常用设置

/*设置发送地址和收受地址*/ utl_smtp.mail(l_conn, p_sendoraddress2);
utl_smtp.rcpt(l_conn, p_receiveraddress2);

[@more@]

/*安装邮件头*/ utl_smtp.open_data(l_conn); /*设置日期*/
–write_data(l_conn, ‘Date’, to_char(sysdate-1/3, ‘dd Mon yy
hh24:mi:ss’)); /*设置发赠给旁人*/ write_data(l_conn, ‘From’, p_sendor);
/*安装接纳人*/ write_data(l_conn, ‘To’, p_receiver);
/*安装邮件大旨*/ select
replace(‘=?GB2312?B?’||utl_raw.cast_to_varchar2(utl_encode.base64_encode(rawtohex(p_sub)))||’?=’,utl_tcp.crlf,”)
into p_subject from dual; write_data(l_conn, ‘Subject’, p_subject);

文本Tag: Oracle ERP

write_data(l_conn, ‘Content-Type’, multipart_mime_type);
utl_smtp.write_data(l_conn, utl_tcp.crlf);
utl_smtp.write_data(l_conn, first_boundary); write_data(l_conn,
‘Content-Type’, ‘text/html;charset=gb2312’卡塔尔;
–单独空少年老成行,否则,正文内容不展现 utl_smtp.write_data(l_conn,
utl_tcp.crlf); /* 设置邮件正文
把分隔符还原成chr(10State of Qatar。那主要是为了shell中调用该进度,假设有多行,则先把多行的剧情统十分一大器晚成行,并用
l_splite分隔 然后用
l_crlf替换chr(10卡塔尔(قطر‎。这一步是必需的,不然将不可能发送邮件正文有多行的邮件
*/ write_data(l_conn, ”, replace(replace(p_txt, l_splite,
chr(10)), chr(10), l_crlf), ”, ”); end_boundary(l_conn);

  【IT168 能力文书档案】ORACLEERP开采基本功在此以前言

/*关门数据写入*/ utl_smtp.close_data(l_conn); /*关闭连接*/
utl_smtp.quit(l_conn);

  http://tech.it168.com/a2009/0427/274/000000274048.shtml

end;
———————————————主过程—————————————————–begin
l_sendoraddress := ” || p_sendor || ”;
p_splite_str(p_receiver卡塔尔;–处理邮件地址 for k in 1 ..
my_address_list.count loop p_email(l_sendoraddress,
my_address_list(k)); end loop;
/*管理邮件地址,根据逗号分割邮件*/end;发过邮件后得以到你的信箱里看看有未有接到

  ORACLE ERP开采之OracleForms幼功(少年老成卡塔尔(قطر‎Forms设置某些

  http://tech.it168.com/a2009/0428/274/000000274178.shtml

  ORACLEERP开拓根底之OracleForms功底(二卡塔尔国FORMS代码部份

  http://tech.it168.com/a2009/0428/274/000000274236.shtml

  ORACLE ERP开荒基本功之Oracle Report根底

  http://tech.it168.com/a2009/0429/274/000000274343.shtml
     ORACLEERP开拓根底之Oracle数据库底子 http://tech.it168.com/a2009/0504/274/000000274773.shtml
     开采工具安装

  Oracle EBS11i
开垦工具是developer6i的事物,非常古老。因为是一弹指顷过来的机械,开荒工具都以安装好了,

  所以也没去在乎那工具的设置。明日系统重装了,才精通这工具安装起来也是特烦人的。

  先安装FORMS6i与REPORT6i,安装完后自然要打补丁。不然会现出一大堆莫名的不当。接着安装discoverer。

  安装discoverer时先将登记表备份出来,因为discoverer无法和Forms安装在同样目录。然后再设置
discoverer的补

  丁,接着再将注册表复苏回来。

  大致如此能够了。注意顺序必必要不能够错了,不然又会现出一群无聊的失实。唉!developer6i是98年的工

  具。盼着EBS 汉兰达12相应是用DEVELOPEPRADO10g吧。

  EBS一次开垦包注册

  2.1 从 Server 中下载 ERP Library (.pll卡塔尔(قطر‎, 寄存于本机Server Path :
/u01/au/11.5.0/resource

  Form文件与Library文件要存放在稳住目录

  例如: Form存放在 d:ErpFormForm

  Library 存放在d:ErpFormLibrary;

  2.2 在 Regedit > HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE
> FORMS60_PATH

  加入client 端存放 Form 及 Library的路径(如图)

  澳门金沙vip 1

  举个例子:d:ErpFormLibrary;d:ErpFormForm(建议要加在最前头State of Qatar

  运用TEMPLATE.fmb 模板来支付Form

  Oracle 已经为咱们提供了二个Form
的支付模板,(/data/deve/devappl/au/11.5.0/forms/ZHS/TEMPLATE.fmb卡塔尔国

  大家的费用实际要依据这些模板,那几个模板里面早就存在了我们将会用到的Oracle
规范的对象,大家要求做的,

  正是那这一个模板的底子方面,加多大家温馨的靶子。这也是住家说一遍开采没啥技能含量的根本原因。但万意气风发

  真令你出写那么PL
包,臆度也没几个人能写好。人临时便是如此,令你站在一代天骄的肩头,还在抱怨那抱怨那的。

  作者也是那类人呀。出出气呀。^_^!

  1、修正template.fmb 文件名,同期删除一些不行的样书对象。

澳门金沙vip 2

 

点此发布您的眼光>>【原来就有位网上朋友宣布了见识】

  2、扩充数据块

  澳门金沙vip 3

  一路照做就足以了,步骤太轻松就绝不讲了吗。实现后,选取“仅创设数据块”。

  3、扩展三个画布

  选取工具菜单上边的结构向导来做。

  澳门金沙vip 4

  注意:采取画布时,接收新画布。如上海体育地方。

  澳门金沙vip 5

  呈现记录数平常为10就能够了。如上海教室。

  注:将画布名称改成与数据块的称号黄金时代致

  4、扩大三个窗口

  澳门金沙vip 6

  注:窗口尽量保持与画面黄金时代致,相同的时候选取相应的主画布。对应的画布那边也要接收主窗口

  5、接纳对象的子类音讯

  澳门金沙vip 7

  全部的对象都应选择相没错子类消息,那边仅以BLOCK为例。

  6、调节布局 无需显示到画布的ITEM,能够将ITEM的画布属性设成空

  澳门金沙vip 8

  7、改良触发器(这一步很关键!)

  澳门金沙vip 9

  8、选取第朝气蓬勃导航块

  澳门金沙vip 10

  9、上传及编写翻译FORMS

  9.1先将FORMS上传至/data/deve/devappl/au/11.5.0/forms/ZHS/

  9.2telnet至server,进入/data/deve/devappl/au/11.5.0/forms/ZHS/目录

  目录:cd /data/deve/devappl/au/11.5.0/forms/ZHS/ 编译:f60gen
FRMSTONE.fmb apps/apps 复制:cp FRMSTONE.fmx
/data/deve/deveappl/hek/11.5.0/forms/ZHS/
注:应当要进去FORM的目录,再拓宽编写翻译。不然编写翻译也足以因而,但会现出意外的主题素材。那些主题材料折腾了自家二天时间,才发觉是ORACLE的BUG。
好了,二个最基本的EBS FORM就付出形成了。

点此公布您的意见>>【原来就有位网民发布了意见】

  注册表单FORM

  1.概念表单

  操作路线:应用开垦员=>应用产物=>表单

  澳门金沙vip 11

  填写表明如下:

  表单:FORMS文件名

  应用:HEK 惠尔康客商化应用

  客户表单名:那一个参数与“功效”中的表单名是相关联的。

  2.定义功用 操作路线:应用开荒员=>应用付加物=>作用

  2.1

  澳门金沙vip 12

  2.2

  澳门金沙vip 13

  2.3

  澳门金沙vip 14

  3.定蓬蒿单

  操作路线:应用开荒员=>应用成品=>菜单

  澳门金沙vip 15

  注:“子菜单”是指菜单能够将另二个菜系的功力全体包罗进来。约等于父菜单的涉及。

  5. 完毕安装,效果如下:

  澳门金沙vip 16

点此宣布您的思想>>【本来就有位网络朋友公布了思想】

  登记央浼

  1.概念可试行

  路线:系统助理馆员->并发->方案->可进行

  澳门金沙vip 17

  注意:定义成须要的长河或函数,必得出席(Errbuf Out Varchar2,Retcode
Out Number卡塔尔国四个形参。

  2.定义并发程序

  路线:系统一管理理员->并发->方案->可举行

  注意:并发程序分界面包车型客车可试行组中的“名称”,与地方的可实施并发程序分界面包车型大巴“简单称谓”是少年老成律的。

  澳门金沙vip 18

  注意:倘诺要传播参数到PL/SQL包中,点击《参数》按键实行设置。

  澳门金沙vip 19

  也足感觉参数赋给暗中同意值,例:暗中认可获得客户ID

  澳门金沙vip 20

  即使要节制参数的取数范围,则要定义值集(怎么着定义?请参见后边的概念值集State of Qatar。

  3.概念诉求组
路线:系统管理员->安全性->责任->请求

  澳门金沙vip 21

  4.将央求组置于职责下

  系统一管理理员->安全性->权利->定义

澳门金沙vip 22

点此公布您的意见>>【原来就有位网络朋友公布了意见】

  登记职责

  1.新建菜单 操作路线:应用开垦员=>应用产品=>应用菜单

  澳门金沙vip 23

  2.新建叁个职责

  操作路线:系统管理员=>安全性=>责任=>定义

  澳门金沙vip 24

  将职务分配给顾客

  操作路线:系统一管理理员=>安全性=>顾客=>定义

  澳门金沙vip 25

  3.转到EBS主页,多展现贰个职分。

  澳门金沙vip 26

点此发布您的思想>>【本来就有位网络朋友发表了意见】

  注册值集

  1.定义集 操作路线:总帐=>设置=>财务系统=>验证=>集

  澳门金沙vip 27

  1.1若是值的来源数据表,则值的印证类型选拔“表”,然后点击“编辑音信”。

  澳门金沙vip 28

  注:假使要促成央浼参数的值集来源,作上下过滤条件的话。其语法:

  where head.customer_number = :$FLEX$.HEK_OM_KHJGB_ACCT_CUST

  and head.created_by = :$FLEX$.HEK_OM_FHD_CREATE_BY

  and TO_CHAR(head.ordered_date,’YYYYMMDD’) =
:$FLEX$.HEK_DAY_TIME_ID ORDER BY HEAD.ORDER_NUMBER

  :$FLEX$.为参数分界面包车型客车名目

  HEK_OM_KHJGB_ACCT_CUST为某些参数的值集名称。

  1.2落到实处的信守如下:

  澳门金沙vip 29

  1.3定义多列值集

  澳门金沙vip 30

  1.4达成效果与利益

  澳门金沙vip 31

  1.5从属

  2.定义值

  2.1倘使值的源于固定的某个值,那么能够一直定义值。将值的评释类型选拔=>独立

  澳门金沙vip 32

  2.2概念集所对应的值

  操作路线:操作路线:总帐=>设置=>财务系统=>验证=>值

  澳门金沙vip 33

点此发布您的观念>>【原来就有位网络老铁公布了观念】

  经过行使开采员拿到系统管理员权利

  日常公司都有分别DBA与DEVELOPE索罗德的,业务机上日常是APPS客户由DBA精通,诸如客商管理也是DBA来担任的。developer是不明白没有应用软件S密码,也远非‖SYSTEM
ADMINISTTRATOSportage―职务的。约等于说DEVELOPE奥迪Q3独有‖Application
Developer―那个职分。同理,应用开辟员是未有权限给终端客商加权限的。
但作者后天测量试验了瞬间,developer即使没直接加职务的权杖,但developer有‖Application
Developer―职务,这几个职责下边有登记菜单的权力,完全能够通过挂号菜单将SYSTEM
ADMINISTRO哈弗加进来。如图:

  澳门金沙vip 34

  查询视图时未有出示数据

  在EBS以外之处(含report卡塔尔,如若认同SQL语句没不正常,那关键是因为视图是OU屏蔽的,由此要求最初化身份。比如:PO_HEADERubiconS。有三种方法,方法黄金时代适用于领会相应的团伙代码,方法二就比较通用了。

  方法一:

  BEGIN

  DBMS_APPLICATION_INFO.set_client_info(122卡塔尔国;
–122代表切实的集体代码,分化厂商,代码是莫衷一是。

  END;

  方法二:

  BEGIN

  APPS.FND_GLOBAL.apps_initialize

  ( user_id =>APPS.FND_GLOBAL.user_id, resp_id
=>APPS.FND_GLOBAL.resp_id, resp_appl_id
=>APPS.FND_GLOBAL.resp_appl_id );

  END;

  注册报表(reportState of Qatar

  路线:系统助理馆员->并发->方案->可举行

  注册报表与登记央浼的手续是大约的。

  澳门金沙vip 35

  定义并发

  路线:系统管理员->并发->方案->定义

  澳门金沙vip 36

  定义报表参数

  点击上海教室的参数开关。

  澳门金沙vip 37

  注:那边与注册央浼不均等的正是,要填写变量栏(变量名称便是REPORT中的变量名称卡塔尔国

  定义央求组

  操作路线:系统管理员->安全性->责任->请求

  澳门金沙vip 38

  将央浼组置于职务下

  系统管理员->安全性->义务->定义

  澳门金沙vip 39

  OK,落成了表格的挂号。

点此发布您的视角>>【本来就有位网络好朋友发表了见识】

  号召的输出及日志

  1、Effect:

  澳门金沙vip 40

  Oracle
EBS会在EBS的设置目录,保存查阅输出及日志之文件。查看具体目录:

  select t.logfile_name,t.outfile_name from
fnd_concurrent_requests t

  where t.request_id = _request_id

  2、当大家自行定义了三个冒出须要时,也时常必要动用方面包车型客车措施伸开一些调节和测验。

  诉求的输出:apps.Fnd_File.Put_line (apps.FND_FILE.OUTPUT,
‘乞求的输出’卡塔尔国;

  央求的日志:apps.Fnd_File.Put_line (apps.FND_FILE.LOG,
‘央求的日志’State of Qatar;

  对于报表,平日情状是把表格的内容输出到OUTPUT,把表格中间的debug逻辑输出到日志中。

  对于央浼包,平时景色是出口到日志中。OUTPUT就不要管了。

  兑现手动提交央浼

  在Form里面,大家可以用

  APPS.FND_REQUEST.SUBMIT_REQUEST

  提交二个Request到Oracle Request
Manager。要是提交成功,该函数重返Request ID,不然,重临0。

  1、初始化

  在付出多个Request在此以前,咱们会调用Oracle
Standard的Procedure对那一个Request做一些着力的参数的带头化。

  APPS.FND_GLOBAL.apps_initialize

  ( user_id =>APPS.FND_GLOBAL.user_id, resp_id
=>APPS.FND_GLOBAL.resp_id, resp_appl_id
=>APPS.FND_GLOBAL.resp_appl_id );

  注:这几个起初化不是必需的,之所以要最初化,是因为视图是OU屏蔽的。
上述讲话等同于dbms_application_info.set_client_info;

  2、函数介绍

  2.1 函数APPS.FND_REQUEST.SUBMIT_REQUEST有105个参数:

  APPS.FND_REQUEST.SUBMIT_REQUEST

  ( APPLICATION IN VARCHAR2 DEFAULT NULL,

  PROGRAM IN VARCHAR2 DEFAULT NULL,

  DESCRIPTION IN VARCHAR2 DEFAULT NULL,

  START_TIME IN VARCHAR2 DEFAULT NULL,

  SUB_REQUEST IN BOOLEAN DEFAULT FALSE,

  chr(0),”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,
”,”,”,”,”,”,”,”,”,”, ”,”,”,”,”,”,”,”,”,”,
”,”,”,”,”,”,”,”,”,”, ”,”,”,”,”,”,”,”,”,”,
”,”,”,”,”,”,”,”,”,”, ”,”,”,”,”,”,”,”,”,”,
”,”,”,”,”,”,”,”,”,”, ”,”,”,”,”,”,”,”,”,” )

  RETURN NUMBER;

  2.2 参数精解

  2.2.1 APPLICATION(必得参数卡塔尔

  应用程序的称号缩写。平时大家或者会用到下边的多少个:

  Oracle Assets „„> OFA

  Oracle General Ledger „„> SQLGL

  Oracle Inventory „„>INV

  Oracle Order Management „„>ONT

  Oracle Payables „„SQLAP

  Oracle Pricing „„QP

  Oracle Purchasing „„PO

  Oracle Receivables „„AR

  操作路线:系统管理员=>应用=>注册

  澳门金沙vip 41

  2.2.2 PROGRAM(必得参数卡塔尔(قطر‎

  要提交到Oracle Request Manager的并发程序之简单的称呼

  操作路线:应用开辟员=>并发=>程序

  澳门金沙vip 42

  2.2.3 第三、第五个参数

  第三、第多个参数默以为空

  2.2.4 第八个参数

  第七个参数默以为false

  2.2.5 第六至第十零四个参数

  第六至第十零三个参数为要传播到央浼中的自定义参数值。假如不用这么多参数时,以chr(0State of Qatar作为参数停止的符号。Chr(0卡塔尔(قطر‎后边剩余的参数为
‘‘。

点此发布您的见地>>【本来就有位网络朋友公布了见识】

  手动提交必要示例

  declare

  v_order_number number;

  v_req_id number;

  begin

  v_order_number := :HEK_ODS_TH_FEE_M_V.OE_HEAD_NUMBER;

  if :HEK_ODS_TH_FEE_M_V.OE_HEAD_NUMBER is null then
FND_MESSAGE.DEBUG(‘请选取配送单后再打印!’);

  RAISE FORM_TRIGGER_FAILURE;

  end if;

  v_req_id := fnd_request.submit_request(‘HEK’,

  ’HEK_退货单’,

  ”, ”,

  FALSE, v_order_number,–v_batch_no, null,–v_batch_no,
null,–v_cust_num, null,–v_driver_num, null,–v_trans_num,
null,–v_vendor_num, null, null,null, chr(0), ”, ”, ”, ”, ”, ”,
”, ”, ”, ”, ”, ”, ”, ”, ”, ”,”, ”, ”, ”, ”, ”, ”, ”,
”, ”,”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”,
”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”,
”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”,
”, ”, ”, ”, ”, ”, ”, ”, ”, ”, ”,”);

  if (v_req_id = 0) then FND_MESSAGE.RETRIEVE;

  FND_MESSAGE.ERROR;

  else

  update HEK_ODS_TH_FEE_M set print_mark=’Y’ where
OE_HEAD_NUMBER = (v_order_number);

  commit_form;

  fnd_message.debug(‘您的伸手已经付出,央求号为:’ ||
to_char(v_req_id卡塔尔(قطر‎ || ‘,请通过翻看->恳求来查阅输出结果。’卡塔尔;

  end if;

  end;

  客制化菜单

  Effect:

  澳门金沙vip 43

  Usage:调用 app_special.instantiate包

  Examples:

  1、扩张二个自定义Form Level的触发器(SPECIAL11State of Qatar

  澳门金沙vip 44

  2、增添测验代码如下:

  ――――――――――――――――――――――――――――――――――――――――――――――

  declare

  v_invoice_num varchar2(50);

  begin

  v_invoice_num := ‘菜单栏客制化100’;

  fnd_message.debug(v_invoice_num);

  end;

  ―――――――――――――――――――――――――――――――――――――――――――――――

  3、在Form WHEN-NEW-FORM-INSTANCEFJ 举办调用:

  APP_SPECIAL.INSTANTIATE(‘SPECIAL11′,’测量检验菜单2’, ”, TRUE, ‘LINE’State of Qatar;

  ―――――――――――――――――――――――――――――――――――――――――――――――

  4、一些特殊表明:

  下边自定义FORMS级触发器,名字必得定义为“SPECIAL+数字‖,不然会报错。况兼数字的分寸决定了菜单出现的前后相继顺序。数字还或然有更加大功效正是决定了,自定义菜单选项放在哪个主菜单下。

  SPECIAL1—SPECIAL15在“工具”主菜单下。

  SPECIAL16—SPECIAL30在“报表”主菜单下。

  SPECIAL31—SPECIAL45在“活动”主菜单下。

  SPECIAL46上述就一贯报错了。^_^

  如下图

  澳门金沙vip 45

  5、 调控自定菊花菜单的是否激活可用。

  使用app_special.enable函数能够垄断(monopoly卡塔尔菜单是还是不是足以行使。

  举个例子:基于差别的数据块,达成菜单的不可用。在block的‖when-new-block-instance‖中插手

  效果:

  app_special.enable(‘SPECIAL1’,property_off);

  效果

  澳门金沙vip 46

  6、 在自定义的美食指南上应用checkbox开关。

  ①扩大二个自定义Form Level的触发器(SPECIAL1_CHECKBOX卡塔尔(قطر‎,代码如下:

  if app_special.get_checkbox(‘SPECIAL1_CHECKBOX’)=’TRUE’ then

  fnd_message.debug(‘Special 1 is True!’);

  else

  fnd_message.debug(‘Special 1 is False!’);

  end if;

  注:使用app_special.get_checkbox来得到checkbox的情景值。

  ②在Form的WHEN-NEW-FORM-INSTANCE触发器中早先化菜单。

  app_special.instantiate(‘SPECIAL1_CHECKBOX’,’Spe&cial 1 Box w
Line’, ”,TRUE,’LINE’);

  app_special.set_checkbox(‘SPECIAL1_CHECKBOX’,’TRUE’);

  注:app_special.set_checkbox是对checkbox实行赋值操作。

  ③职能如下:

  澳门金沙vip 47

点此公布您的观念>>【原来就有位网络好朋友发表了观念】

  客制化右键菜单

  1、
首先纵然是要为有些ITEM,别的支付八个右键菜单。这么些须求一向根据FORM的费用教程,自定义三个POPUP菜单就足以了。但本文讲的在EBS全部的火速菜单上,额外扩充所需的菜单开关。相当于要图上所示的迅猛菜单上加码菜单按键。

  澳门金沙vip 48

  2、 在FROM-LEVEL增加自定义触发器(名字法则为:POPUP+N卡塔尔国

  澳门金沙vip 49

  3、 ITEM的“PRE-POPUP-MENU”触发器上开头化菜单。

  APP_POPUP.INSTANTIATE(‘POPUP1′,’First Entry’);

  APP_POPUP.INSTANTIATE(‘POPUP10′,’SECONED Entry’,TRUE,’LINE’);

  APP_POPUP.INSTANTIATE(‘POPUP3′,’THREE Entry’,FALSE,NULL);

  澳门金沙vip 50

  4、
假如是全体BLOCK的ITEM都亟待客制化飞速菜单,能够在BLOCK的“PRE-POPUP-MENU”定义。

  APP_POPUP.INSTANTIATE(‘POPUP1′,’global’);

  澳门金沙vip 51

  调用EBS日期控件

  1、
首先将ITEM的LOV属性设置为“ENABLE_LIST_LAMP”、列表验证属性设置为“否”

  澳门金沙vip 52

  2、在ITEM的“KEY-LISTVAL”解发器下参加对下代码:

  BEGIN

  calendar.show();

  END;

  3、注意:ITEM对应数据库类型必得是DATE类型,不然会报frm-40700荒谬。效果如下:

  澳门金沙vip 53

  查询数据时间限制订语言情形

  EBS是个多语言的作业系统,分界面上只询问到一条记下,实际上后台数据表是多条记下的。如:值集表。

  select * from apps.FND_FLEX_VALUES_TL t, apps.FND_FLEX_VALUES
B

  where B.FLEX_VALUE_ID = T.FLEX_VALUE_ID

  and t.language = userenv(‘LANG’)

  贯彻历史记录查询

  1.要落成的效应

  澳门金沙vip 54

  2.在定义数据表时,必得步入以下三个字段:

  澳门金沙vip 55

  即:CREATED_BY NUMBER、CREATION_DATE DATE、LAST_UPDATED_BY
NUMBER、LAST_UPDATE_DATE DATE、LAST_UPDATE_LOGIN NUMBE昂Cora网络稍加作品说还非得定义主键、连串。但要是仅完成此成效是没有必要的。当然从数据库设计方面来讲,那个概念也是必得的。

  3、在数据块的PRE-INSERT、PRE-UPDATE触发器中参预代码
FND_STANDARD.SET_WHO;

点此发表您的见解>>【原来就有位网上亲密的朋友发布了思想】

  完毕文件夹效能

  1、在客制的Form里面实现Oracle Folder的功能,末了效果如下:

  澳门金沙vip 56

  2、使用TEMPLATE.fmb创造二个Form(名称:FRMSTONE卡塔尔国。

  2.1加多Form Objects 满含多少个Window,MY_FOLDER

  一个Canvas, MY_FOLDER
一个Block,MY_FOLDETucson(能够利用指导创设卡塔尔,并改正其品质。如下图:

  澳门金沙vip 57

  注:使用文件夹的数据块,其名称总长不能够超过22字节!

  2.2修改Trigger和ProgramUnits

  Form Level Trigger: PRE-FORM:

  app_window.set_window_position(‘MYFOLDER’, ‘FIRST_WINDOW’);

  Program Units:APP_CUSTOM:

  if (wnd = ‘MYFOLDER’) then app_window.close_first_window;

  2.3改变FORM属性设置

  澳门金沙vip 58

  注:要求表明的是:设成第一个导航数据块的blockname必需最少一个item处于canvas中,不然会报FRM-40106的不当。

  2.4其余的具体步骤同日常的FORM开采同样,就相当少说了。

  3、添加Folder相关的Objects

  3.1文书夹相关的Window、Canvas、Block、Item…等都富含在Oracle Standard
Form APPSTAND.FMB。

  3.2在长久以来窗口展开标准的Form和大家协和客制的Form,而且接收应用程式STAND.FMB
的Object Groups
STANDAEnclaveD_FOLDER然后用鼠标拖动至我们自个儿的Form的Object
Groups。

  澳门金沙vip 59

  3.3当时会弹出对话框:

  澳门金沙vip 60

  采纳子类,你会开采Form
Builder都会在你的Form里面自动抬高非常多指标。做完这一步后,请不要关闭APPSTAND.FMB。

  4、增加Attached Libraries

  做完上面的步子后,检查一下Attached
libraries里面有未有APPFLD凯雷德。若无,大家供给手工业增添。

  澳门金沙vip 61

  5、增加Stacked Canvas FOLDER_STACK
这一步是必得的,并且你希望达成Folder拖动功用的那二个Item皆以放在那些Canvas里面,那几个Stacked
Canvas又是坐落于前方大家创建的Canvas:MY_FOLDER上面的。

  5.1充实Stacked Canvas 双击张开Canvas
MY_FOLDE福特Explorer,在右侧工具条里面选用Stacked Canvas,然后在Canvas
MY_FOLDEHighlander里面拖动就可以。

  澳门金沙vip 62

  5.2设置Stacked Canvas属性

  澳门金沙vip 63

  6、校订数据块MY_FOLDER中的Item属性

  澳门金沙vip 64

点此公布您的眼光>>【原来就有位网络好友公布了见识】

  7、创立调整块MY_FOLDER_PROMPT

  7.1设置块的性质 子类音信:block 数据库数据块:否

  7.2日增ITEM 注:扩充Item,名称必需和Block
MY_FOLDE途乐中的Item保持生机勃勃致。
其余,数据块中有些item(如id卡塔尔(قطر‎不要突显在canvas上的,那么此类item也实际不是在MY_FOLDER_PROMPT创建相应的item.

  澳门金沙vip 65

  7.2装置其开首值,也正是显得的竹签字及子类音讯

  澳门金沙vip 66

  7.3日增别的连锁Item
大家还亟需追加其余的有个别Item,都以和Folder的功能有关的。

  澳门金沙vip 67

  澳门金沙vip 68

  8、扩展对应的trigger

  澳门金沙vip 69

  9、别的注意事项

  9.1荒诞:在编写翻译带有文件夹的FORM时,平日会现出如下提示。

  FRM-30085: Unable to adjust form for output

  那是因为ITEM超出的了画布的可观大概宽度变成的。如图: