FORM調用併發請求

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; 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章