手动提交请求示例
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:
Usage:调用 app_special.instantiate包
Examples:
1、增加一个自定义Form Level的触发器(SPECIAL11)
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');
―――――――――――――――――――――――――――――――――――――――――――――――
4、一些特殊说明:
上面自定义FORMS级触发器,名字必须定义为“SPECIAL+数字‖,否则会报错。并且数字的大小决定了菜单出现的先后顺序。数字还有更大作用就是决定了,自定义菜单选项放在哪个主菜单下。
SPECIAL1—SPECIAL15在“工具”主菜单下。
SPECIAL16—SPECIAL30在“报表”主菜单下。
SPECIAL31—SPECIAL45在“活动”主菜单下。
SPECIAL46以上就直接报错了。^_^
如下图
5、 控制自定义菜单的是否激活可用。
使用app_special.enable函数可以控制菜单是否可以使用。
例如:基于不同的数据块,实现菜单的不可用。在block的‖when-new-block-instance‖中加入
效果:
app_special.enable('SPECIAL1',property_off);
效果
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进行赋值操作。
③效果如下: