BIEE 變量總結

Biee 11g 變量總結

 

一、oracle bi管理工具中--------資料檔案庫變量和會話變量

Administrator tool -Manage-Variable 下圖~

8ba5fcf6ca9ffdd57609d713

 

這裏是模型RPD定義變量的地方,也就是所定義的變量名都是保存在RPD模型中,Variable 所定義的變量類型分爲兩大類,一種是Repository(庫變量),另外一種是Session(會話變量)

其中Repository分兩種變量的類型:Dynamic(動態變量)Static(靜態變量)
Session
也分兩種變量類型:System(系統變量)Non-System(非系統變量)

1.資料檔案庫變量:

庫變量的Static(靜態變量)經常是作爲項目需求中經常用的固定值做爲這個靜態變量值的,這種資料檔案庫變量的值將予以保存,除非管理員決定更改,否則不會發生更改舉個例子:如果一個項目中有10Dashboard,每個Dashboard10page,每個page的下標都需要帶上公司的版權註釋,當公司被收購了版權需要更改的話怎麼辦,改一百次版權信息?這裏如果用靜態變量的話就方便多了,只需修改變量對應的缺省值就可以了。

用法如圖:

5152431b6e65817f43a9ad82
建立一個StaticRepository Variable

 

f063f34d0744c10cafc3ab9d
變量名爲SRV缺省值爲222050000,其中要注意一下類型Type,因爲是靜態的,所以不需要初始化塊。

在前端直接就可以調用了

輸入變量名即可

查看結果 說明調用靜態的庫變量成功。

這裏需要注意一下,表達式和篩選調用庫變量的時候是可以spacerVALUEOF('SRV')來引用,而其他地方調用的話例如文本:需要這麼寫@{biServer.variables['SRV']} 

再看一下動態(Dynamic)的庫變量的用途,這種資料檔案庫變量的值將由從查詢返回的數據進行刷新 例如:一個項目中,要求當用戶登錄的時候看到的數據是當天(當月)的數據,這時候我們需要用到動態的庫變量(也有其他方法,不做介紹了)

所謂的當前,就是此刻所在的月,所以這些需要設置初始化塊來設置時間的更新設置。 如圖:

b257c5282eb327025243c150

Edit Data Source是編輯查詢的地方,會返回若干行值;

Edit Data Target是指定查詢返回的數據用於初始化哪個變量的。返回值的順序和需要初始化的變量順序需要嚴格對稱;

可以在Edit Data Target中新建動態變量

也可以先創建好變量之後 在分配初始化快。

Schedule的地方就是制定查詢執行的頻率,即多久更新一次變量。

前端的調用方法可以靜態的庫變量相同;

這裏需要提醒一下。庫變量無論是靜態的或是動態的,在前端都是無法對其變量值進行更改的,當然如果是庫變量的取的關係庫表中的值,通過回寫數據庫的數據來改動態的庫變量也是一種方法哦~

2.會話變量:

再看一下Session會話變量,會話變量是在每個用戶登錄時進行初始化的變量。當用戶開始會話時,Oracle BI Server 會創建會話變量的新實例並進行初始化。會話變量的設置方法和庫變量類似,也是可以直接設置Variables,當然也可以定義初始化塊來定義更復雜的會話變量,其中會話變量分系統變量和非系統變量。

系統會話變量:系統會話變量具有保留名稱,這些名稱不能用於其他類型的變量 (例如靜態變量、動態資料檔案庫變量和非系統會話變量這裏常用到的就USER,GROUP,ROLES,DISPLAYNAME,其他變量的含義請參考 Business Intelligence Server Administration Guide非系統會話變量名稱可以自定義,但不要和系統變量同名即可,這裏不再說步驟了,和庫變量定義相同,這裏定義了一個非系統會話變量SessionTest如下:



其中 執行優先級 是加載其他的應用程序定義的變量(例如:LDAP定義的用戶變量)。

測試 按鈕可以測試查看到變量名稱和其缺省值



再前端調用一下


注意調用會話變量的時候是VALUEOF(NQ_SESSION.變量名)而調用庫變量的時候是VALUEOF(“變量名”)


OK~
調用成功。

二、在前端定義的變量~

前端可以定義的變量分爲表示變量和請求變量 都是創建提示中設置

1.    表示變量  表示變量是把提示中(也可叫篩選器)的所選項作爲變量的Value值進行使用 .表示變量的值由創建該變量時所使用的列提示或變量提示填充。也就是說,每次用戶在列提示或變量提示中選擇值時,表示變量的值就會設置爲用戶選擇的這個值。

創建方法:1.在儀表盤提示中 新建變量提示

或者在新建列提示的下面設置表示變量作爲列提示一部分創建的表示變量與某個列相關聯,它可採用的值來自於列值。

@{變量名}的結果來引用 同時可以設置賦予變量一個默認值

結果如下

2.    請求變量

通過請求變量可以覆蓋會話變量的值,但這隻在從列提示啓動的數據庫請求期間有效。可以在創建列提示的過程中創建請求變量。作爲列提示一部分創建的請求變量與某個列相關聯,它可採用的值來自於列值。請求變量的值由創建該變量時所使用的列提示填充。也就是說,每次用戶在列提示中選擇值時,請求變量的值就會設置爲用戶選擇的這個值。不過,只有在從用戶按提示的開始按鈕到分析結果返回到儀表盤這一段時間內,該值纔有效。

請求變量是重新定義會話變量的Value值的變量,其新定義的值來自提示所選項。

設置請求變量名的時候必須要和將修改的會話變量名稱相同,上邊已經定義了一個非系統會話變量SessionTestValue值爲222010000,下面以這個爲例,來修改會話變量SessionTestValue值。


在新建列提示中定義一個請求變量,名爲SessionTest

在做一個會話變量的表


b223489b0a6675326e068cc8
這裏無需加篩選器,因爲調節列是來自會話變量,我們實驗的目的就是用提示的請求變量來修改這個會話變量的列~

OK~添加到儀表盤裏看一下結果~

61f4ca85323b7710c65cc3d4
爲了試驗明顯提示的缺省值沒有進行設置,這裏的缺省值是來自會話變量的222010000

操作一下提示來改變會話變量的Value~

08440bf05369d129b07ec5d9
OK~~

變量用法總結:

庫變量在Answers列的編輯公式中調用方法是VALUEOF("變量名")

會話變量在在Answers列的編輯公式中調用方法是VALUEOF(NQ_SESSION.變量名)

庫變量和會話變量在其他地方調用(例如文本中)是@{biServer.variables[‘變量名’]}

表示變量的調用方法是@{變量名}

系統自帶了一些會話變量如下:

Delivers@{currentMonth}

currentTime => @{system.currentTime} = 2010-5-14 2:21:30

system.productVersion => @{system.productVersion} = 10.1.3.4 (Build 080726.1900)

session.locale => @{session.locale} =zh-cn

session.language => @{session.language} = zh

rtl =>@{session.rtl} = false

session.loginTime => @{session.loginTime} = 2010-5-14 1:42:36

session.logoutTime =>@{session.logoutTime } = 2010-5-14 1:42:31

session.lastAccessTime =>@{session.lastAccessTime} = 2010-5-14 2:21:29

session.currentUser => @{session.currentUser.id} = administrator

user.homeDirectory => @{user.homeDirectory} = /users/administrator

user.id => @{user.id} = administrator

user.displayName => @{user.displayName} = administrator

 

 

 

 

 

 

 


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