何謂參照變數的語法?

您可以在分析、儀表板、KPI 及代理程式中參照變數。參照變數的方式需視您執行的工作而定。

對於在對話方塊之欄位中顯示的工作,例如,在篩選定義中參照變數,您必須僅指定變數的類型和名稱 (不是完整語法)。

對於其他工作,例如在標題檢視中參照變數,您必須指定變數語法。您使用的語法需視變數類型而定,如表格中所述。

註:

在語法中,如果 "at" 標誌 (@) 之後不是括號 ({),它就會被視為 "at" 標誌。
變數類型 語法 範例

階段作業

@{biServer.variables['NQ_SESSION.variablename']}

其中 variablename 是階段作業變數的名稱,例如 DISPLAYNAME。

如需您可以使用之系統階段作業變數的清單,請參閱 Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition 中的 About System Session Variables

@{biServer.variables['NQ_SESSION.USER']}

儲存區域

@{biServer.variables.variablename}

@{biServer.variables['variablename']}

其中 variablename 是儲存區域變數的名稱,例如 prime_begin

@{biServer.variables.prime_begin}

@{biServer.variables['prime_begin']}

展示或要求

@{variables.variablename}[format]{defaultvalue}

@{scope.variables['variablename']}

其中:

  • variablename 是展示或要求變數的名稱,例如 MyFavoriteRegion。

  • (選擇性) format 是相依於變數資料類型的格式遮罩,例如 #、##0、MM/DD/YY hh:mm:ss。(請注意,格式不會套用至預設值。)

  • (選擇性) defaultvalue 是一個常數或變數參照,指示在未填入 variablename 所參照的變數時使用的值。

  • scope 會識別變數的辨識符號。如果變數是在多個層次 (分析、儀表板頁面及儀表板) 使用,而且您要存取特定值,您就必須指定範圍。(如果您未指定範圍,則優先順序依序為分析、儀表板頁面及儀表板。)

注意:當儀表板提示與可以有多個值的展示變數一起使用時,語法會視資料欄類型而有所不同。多個值會格式化為以逗號區隔的值,因此,會先將任何格式子句套用至每個值,再使用逗號予以結合。

@{variables.MyFavoriteRegion}{EASTERN REGION}

@{MyFavoriteRegion}

@{dashboard.variables['MyFavoriteRegion']}

(@{myNumVar}[#,##0]{1000})

(@{variables.MyOwnTimestamp}[YY-MM-DD hh:mm:ss]{)

(@{myTextVar}{A, B, C})

全域

@{global.variables.variablename}

其中 variablename 是全域變數的名稱 (例如 gv_region)。參照全域變數時,您必須使用範例中指示的完整名稱。

注意:全域變數的命名慣例必須符合 JavaScript 的 EMCA Scripting 語言規格。名稱不得超出 200 個字元,也不得包含內嵌空格、保留字和特殊字元。如果您不熟悉 JavaScripting 語言需求,請參閱第三方參照。

@{global.variables.gv_date_n_time}

您也可以在表示式中參照變數。在表示式中參照變數的準則如下表所述。

變數類型 準則 範例

階段作業

  • 包括作為 VALUEOF 函數之引數的階段作業變數。

  • 在變數名稱前後加上雙引號。

  • 在階段作業變數前面加上 NQ_SESSION 和句點。

  • 在 NQ_SESSION 部分和階段作業變數名稱前後加上括弧。

"Market"."Region"=VALUEOF(NQ_SESSION."SalesRegion")

儲存區域

  • 包括作為 VALUEOF 函數之引數的儲存區域變數。

  • 在變數名稱前後加上雙引號。

  • 按名稱參照靜態儲存區域變數。

  • 按其完整名稱參照動態儲存區域變數。

    如果您使用動態儲存區域變數,則必須在初始化區塊和儲存區域變數的名稱前後加上雙引號 ("),並以句號區隔,然後再於前後加上括弧。例如,若要使用包含在「區域安全性」初始化區塊中名為 REGION 的動態儲存區域變數的值,請使用此語法:

    VALUEOF("Region Security"."REGION")

    如需詳細資訊,請參閱 Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition 中的 About Repository Variables

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END

展示

  • 使用此語法:

    @{variablename}{defaultvalue}
    

    其中 variablename 是展示變數的名稱,defaultvalue (選擇性) 則是常數或變數參照,指示在未填入 variablename 所參照的變數時使用的值。

  • 若要將變數轉型 (即轉換) 為字串,請在整個語法前後加上單引號,例如:

    '@{user.displayName}'
    

注意:如果 @ 標誌之後不是 {,它就會被視為 @ 標誌。

使用可以有多個值的展示變數時,語法會視資料欄類型而有所不同。

針對指定的資料欄類型使用下列 SQL 語法,以產生有效的 SQL 敘述句:

  • 文字 — (@{variablename}['@']{'defaultvalue'})

  • 數值 — (@{variablename}{defaultvalue})

  • 日期時間 — (@{variablename}{timestamp 'defaultvalue'})

  • 日期 (僅有日期) — (@{variablename}{date 'defaultvalue'})

  • 時間 (僅有時間) — (@{variablename}{time 'defaultvalue'})

"Market"."Region"=@{MyFavoriteRegion}{EASTERN REGION}

"Products"."P4 Brand"=(@{myTextVar}['@']{BizTech})

"Products"."PO Product Number"=(@{myNumVar}{1000})

"Sales Person"."E7 Hire Date"=(@{myDateTimeVar}{timestamp '2013-05-16 00:00:01'})

"Time"."Total Fiscal Time"=(@{myDateVar}{date '2013-05-16'})

"Time"."Time Right Now"=(@{myTimeVar}{time '00:00:01'})

使用 SQL 時的多個值 (指定的資料類型):

  • 如果資料欄類型是文字,而且 variablename 是傳遞 val1、val2 和 val3,結果就會是 ('val1', 'val2', 'val3')。

  • 如果資料欄類型是日期,而且 variablename 是傳遞 2013-08-09 和 2013-08-10,結果就會是 (date '2013-08-09', date '2013-08-10')。

  • 如果資料欄類型是日期時間,而且 variablename 是傳遞 2013-08-09 00:00:00 和 2013-08-10 00:00:00,則結果就會是 (timestamp '2013-08-09 00:00:00', timestamp '2013-08-10 00:00:00')。

如需瞭解您可參照變數的特定區域,請參閱何處可以參照變數?