在程序中提交XMLP報表

1,首先調用函數fnd_request.add_layout來確定輸出文件
   調用方法:result := fnd_request.add_layout(template_appl_name => :template_appl_name,
                                     template_code => :template_code,
                                     template_language => :,template_language,
                                     template_territory => :template_territory,
                                     output_formate => :output_format,
                                     nls_language => :nls_language);
  其中result爲boolean類型的變量
  template_appl_name 指請求模版對應的應用簡稱
  template_code 指請求模版的簡稱,一般與請求的簡稱相同
  template_language 指運行請求時模版的語言,中文爲zh,英文爲us,此參數必須在掛模版時所選的語言範圍內
  template_territory 指語言對應的區域,中國爲CN
  output_formate 指報表輸出時的格式類型,如PDF,EXCEL等
  nls_language 留空即可
  
2,在 result 返回值爲 true 時再調用函數 FND_REQUEST.SUBMIT_REQUEST(提交處理事務處理接口請求) 來正式提交請求
調用方法: ln_request_id := fnd_request.submit_request(application => :application,
                                        program => :program,
                                        description => :description,
                                        start_time => :start_time,
                                        sub_request => sub_request,
                                        argument1..100 => :argument1..100);
其中 ln_request_id 爲數值類型的變量
application 指請求對應的應用簡稱,必須
program 指請求的簡稱,必須
description 描述,在調用時留空即可
start_time 指請求開始運行的時間,在調用時留空即可,表求即時執行
sub_request 指當前請求是否是子請求,一般在調用時賦值 false,必須
argument1..100 指調用請求時的參數,最多100個,在pl/sql中調用時可在最後一個參數後用 chr(0)來表示爲最後一個參數,不用寫滿100個參數,如果在form中調用則需要寫滿100個參數
3,2步執行後如果 ln_request_id > 0 表示提交成功,則需要顯性執行 commit 纔可最終提交成功

舉例:
SELECT 
        XTV.DEFAULT_LANGUAGE
       ,XTV.DEFAULT_TERRITORY
       ,XTV.TEMPLATE_CODE
    INTO 
        lv_default_language
       ,lv_default_territory
       ,lv_template_code
    FROM 
        XDO_TEMPLATES_VL XTV
    WHERE 
        XTV.APPLICATION_SHORT_NAME = 'XXAR'
    AND XTV.TEMPLATE_CODE = 'CUXARINVP';
    --
    lb_result := FND_REQUEST.ADD_LAYOUT('XXAR',  
                                         lv_template_code,  
                                         lv_default_language,  
                                         lv_default_territory,  
                                         'PDF');
    --
    IF lb_result THEN
      ln_request_id := FND_REQUEST.submit_request(
                                        application => 'XXAR',
                                        program     => 'CUXARINVP',
                                        description => NULL,
                                        start_time  => NULL,
                                        sub_request => FALSE,
                                        argument1   => p_reprint_flag,
                                        argument2   => p_batch_source_id,
                                        argument3   => p_cust_trx_type_id,
                                        argument4   => p_cust_account_id,
                                        argument5   => p_invoice_number_from,
                                        argument6   => p_invoice_number_to,
                                        argument7   => p_invoice_date_from,
                                        argument8   => p_invoice_date_to,
                                        argument9   => p_order_number
                                        );
      COMMIT;

      IF NVL(ln_request_id,0) > 0 THEN
          write_log('Successfully submitted with request_id: '||ln_request_id);
      ELSE
          write_log('Failed to launch.');
      END IF;
     --
      COMMIT;
    END IF;


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