第一范文网 - 专业文章范例文档资料分享平台

Oracle ERP FORM开发学习操作手册

来源:用户分享 时间:2025/8/26 7:16:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.1.5如何在运行时监视变量当前值

FORM开发无法使用调试器进行断点调试,因此,假如需要在运行时观察某个变量运行到当前代码时的值是多少,可以借助以下方法进行,主要是借助弹出式窗口显示出当前变量的内容。

1. 在“程序单元”中创建显示“过程”,如图所示:

图69

2. 输入如下代码:

PROCEDURE CUST_SHOW_MESSAGE(MsgName IN VARCHAR2) IS i number; BEGIN --FND_MESSAGE.set_name为Oracle提供函数,用于将信息设置到产品上,最终显示可能根据语言环境和产品预先的配置实现--翻译效果,完整的用法可能需要搭配FND_MESSAGE.set_token,本函数参数依次为: --产品的SHORT_NAME,信息文字 FND_MESSAGE.set_name('TCSA',MsgName); --FND_MESSAGE.question为Oracle提供的函数,用于弹出Question类型窗口,参数依次为: -- 第一个按钮文字,第二个按钮文字,第三个按钮文字,默认按钮位置,取消按钮位置,窗口图标 i := FND_MESSAGE.question('Yes','','',1,2,3); END; 3. 在需要监视的地方插入CUST_SHOW_MESSAGE调用,例如下图所示,是在进入该函数时

弹出显示当前event变量的值

图70

3.1.6如何实现关键字弹性域

1. 在Form级别的触发器WHEN-NEW-FORM-INSTANCE 中添加初始化关键字弹性域代码,

下面例子中的代码是取商品关键字弹性域的编码,本代码中的参数不通用,注意理解代码中的注释 同 VALIDATE =>'FULL', --不理解此参数含义 ID =>'CATEGORY_ID', --记录弹性域ID,关键字弹性域Oracle中 NUM => :PARAMETER.P_ITEM_CAT_STRUCTURE_ID, --上面SQL语 WHERE_CLAUSE => '(NVL(DISABLE_DATE,SYSDATE+1) > SYSDATE)'); --有效条--获取相关的关键字定义ID_FLEX_NUM到P_ITEM_CAT_STRUCTURE_ID参数中 select ID_FLEX_NUM INTO :PARAMETER.P_ITEM_CAT_STRUCTURE_ID from FND_ID_FLEX_STRUCTURES_VL WHERE ID_FLEX_CODE = 'MCAT' AND ID_FLEX_STRUCTURE_CODE = 'CUSTOMS_CATELOGIES'; -- 调用Oracle标准包FND_KEY_FLEX.DEFINE完成初始化关键字弹性域 FND_KEY_FLEX.DEFINE(BLOCK =>'CT_LINES', APPL_SHORT_NAME =>'INV', CODE =>'MCAT', --弹性域所在数据块 --界面上显示的弹性域字段 FIELD =>'CATEGORY_NAME', --WHERE语句中的ID_FLEX_CODE和ID_FLEX_STRUCTURE_CODE需要依照实际情况更改 --弹性域产品名,依照实际情况进行更改 --与上面SQL语句的条件中的ID_FLEX_CODE相实际上主要记录ID 句找到的ID 件,本例子中,表达式表示DISABLE_DATE要大于SYSDATE或者为空才有效) 2. 在‘参数’中创建上诉代码需要使用的P_ITEM_CAT_STRUCTURE_ID,如图:

图71

3. 修改画布上的弹性域项的属性。按照我们的例子,是代码中 FIELD定义的

CATEGORY_NAME,更改它的“值列表”为ENABLE_LIST_LAMP,它的效果是界面上生成一个空的LOV按钮,注意“从列表中验证”要选“否”,如图所示:

图72

4. 为该项添加触发器WHEN-NEW-ITEM-INSTANCE,添加如下代码: --调用Oracle提供的FND_FLEX.EVENT,激活关键字弹性域 FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE'); 如图:

图73

5. 同样是在该项下添加校验触发器WHEN-VALIDATE-ITEM,添加如下代码,注意代码中的

注解: DECLARE if l_category_desc varchar2(2000); --使用Oracle包FND_FLEX.EVENT执行VALIDATE事件 FND_FLEX.EVENT('WHEN-VALIDATE-ITEM'); --当弹性域有值并且记录弹性域ID的项校验有效,则将弹性域描述文字保存到临时变量 : CT_LINES.category_name is not null and (fnd_flex_keyval.validate_ccid('INV', BEGIN 'MCAT', :parameter.p_item_cat_structure_id, : CT_LINES.category_id)) then l_category_desc := fnd_flex_keyval.concatenated_descriptions; end if; --当弹性域没有值,清空记录弹性域ID和临时变量 if : CT_LINES.category_name is null then l_category_desc := null; : CT_LINES.category_id := null; end if; --将临时变量的值赋予描述字段 : CT_LINES.category_desc := l_category_desc; EXCEPTION END; WHEN others THEN RAISE; 6. 最后,检查所有相关触发器是否都调用了fnd_flex.event,清单如下: PRE-QUERY FORM_LEVEL FND_FLEX.EVENT('PRE-QUERY') POST-QUERY FORM_LEVEL FND_FLEX.EVENT('POST-QUERY') PRE-INSERT FORM_LEVEL FND_FLEX.EVENT('PRE-INSERT') PRE-UPDATE FORM_LEVEL FND_FLEX.EVENT('PRE-UPDATE') WHEN-VALIDATE-RECORD FORM_LEVEL FND_FLEX.EVENT('WHEN-VALIDATE-RECORD') WHEN-NEW-ITEM-INSTANCE ITEM_LEVEL FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE')

搜索更多关于: Oracle ERP FORM开发学习操作手册 的文档
Oracle ERP FORM开发学习操作手册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5se455dl1u20sz532578_13.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top