close

利用runtime parameter .."expiration"
執行一次以後,一分鐘後這個cache就會過期了...不管你用showjobsgetjobid都無法再次讀取...

以下是隨便拉一個form出來的按鈕code
DECLARE
   PL_ID  PARAMLIST:= GET_PARAMETER_LIST( 'P_LIST' );
BEGIN 
   SYNCHRONIZE;
   IF NOT ID_NULL( PL_ID ) THEN 
     DESTROY_PARAMETER_LIST( PL_ID ); 
   END IF; 
   PL_ID := CREATE_PARAMETER_LIST( 'P_LIST' );
   ADD_PARAMETER( PL_ID
'PARAMFORM'TEXT_PARAMETER'NO' );
   ADD_PARAMETER(PL_ID,'expiration',TEXT_PARAMETER,'1');   
   --RUN_P_L 
是我自己寫的run_report_object package
   RUN_P_L('nolem1','localhost:8890',PL_ID,'S','test','REPORT1');    
END;

 

form call report , run_report_object 這種方式,report 本身都是先產生檔案,form  在做show_doc...的動作把檔案用 browser 顯示出來的

所以不管你用file 或是cache 都會在server 上產生檔案...一分鐘的過期動作,其實已經是沒辦法中的辦法了因為沒辦法確保

你檔案產生之後,能在0.x  立刻啟動另一個browser打開你要的cache file , 

所以不可能限制到秒這個動作...也就是expiration 這個參數為什麼會有一分鐘的buffer ...

好像從10g r2 開始有一種檔案格式叫做localfile , 但是目前這種格式是有bug..

且目前可行的workaound 一樣是產生cache 在用mimetype 去強制他存到local pc , 

這麼來,也就表示一樣會在server上產生檔案..一分鐘內一樣可以用getjobid去取得...

所以目前真的要做到這樣的管控..就是不使用run_report_object ..而是直接關掉 showjob

getjobid的功能報表執行方式則是使用 http://localhost:8890/reports/rwservelt?

report=test.rdf&despype=cache&desformat=pdf&........  

這樣直接執行的方式..但這種方式..又衍生另一種問題..就是url 都把參數帶進來了..

所有user 自訂的參數又得要想辦法藏起來...且要加上執行許可權的設定,且要藏起這些參數...

就又必須要編修cgicmd.dat 這個檔案..把所有的報表以及參數全部藏起來用別名取代執行指令...

這反而更加的麻煩且不切實際.... 參考一下吧~


arrow
arrow
    全站熱搜

    Nolem 發表在 痞客邦 留言(0) 人氣()