FORM调用并发请求

2 篇文章 0 订阅

Oracle EBS FORM开发,有时候需要在客户化form界面调用并发请求,并打开请求界面。代码如下所示,仅供参考。


DECLARE
	l_question_result NUMBER; 
	l_request_id      NUMBER; 
	--等待请求字段
	l_bl_result       BOOLEAN;
	l_phase           VARCHAR2(240);
	l_status          VARCHAR2(240);
	l_dev_phase       VARCHAR2(240);
	l_dev_status      VARCHAR2(240);
	l_message         VARCHAR2(240);
BEGIN 	
	 
	IF :blk_qry.period_yearmonth IS NULL THEN 
		fnd_message.set_string('查询界面字段“期间”为空');
		fnd_message.show;
		RAISE form_trigger_failure; 
	END IF ; 
	
	fnd_message.set_string('查询界面“BU编码”和“期间”将作为参数运行请求“XXMA:管会费用收集”,是否继续?');
	l_question_result := fnd_message.question('YES'
	                                          ,NULL
	                                          ,'CANCEL'
	                                          ,'1'
	                                          ,'3'
	                                          ,'question'); 
	IF l_question_result = 1 THEN 
		--提交请求
		l_request_id  := fnd_request.submit_request('XXMA'
		                                           ,'XXMA_EXPENSE_COLLECT_PKG'
		                                           ,NULL
		                                           ,SYSDATE
		                                           ,FALSE
		                                           ,:blk_qry.bu_code
		                                           ,:blk_qry.period_yearmonth
		                                           ,chr(0));
	 IF l_request_id >0 THEN
	 	  IF NOT(app_form.quietcommit) THEN
	 	  	 RAISE form_trigger_failure;
	 	  END IF; 
	 	  
	 	  fnd_function.execute(function_name => 'fnd_fndrsrun'
	 	                      ,open_flag     => 'Y'
	 	                      ,session_flag  => 'Y'
	 	                      ,other_params  => 'concurrent_program_name="XXMA_EXPENSE_COLLECT_PKG" program_appl_short_name="XXMA"dodt_req_id ="'||l_request_id||'"');      
	 	 --等待请求处理完成
	 	 l_bl_result := fnd_concurrent.wait_for_request(request_id  => l_request_id
	 	                                               ,INTERVAL    => 1
	 	                                               ,max_wait    => 360
	 	                                               ,phase       => l_phase
	 	                                               ,status      => l_status
	 	                                               ,dev_phase   => l_dev_phase
	 	                                               ,dev_status  => l_dev_status
	 	                                               ,message     => l_message);                            
	 ELSE
	 	  fnd_message.set_string('提交并发请求失败,请联系系统管理员!');
	 	  fnd_message.error;
	 	  RAISE form_trigger_failure; 
	 END IF;
	ELSE 
		RAISE form_trigger_failure; 	
	END IF ;
	
END; 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值