計算欄位

計算欄位可讓您在物件上定義欄位,此欄位的值是從其他欄位的值計算而來。 這些其他欄位可能存在於相同物件上或其他相關物件上。 這些計算可用於應用程式中,也可用於產生報告目的。

計算欄位是在應用程式使用者介面中定義。 如需定義新計算欄位的相關資訊,請參閱 IBM OpenPages with Watson 管理手冊 或聯絡系統管理者以取得協助。

計算欄位的限制

  • 此應用程式能夠儲存的計算屬性值大小有所限制。 重要的主要屬性是方程式,其中複式扁平方程式可能會非常長。

    輸入文字的大小限制為 20,000 位元組。 請注意,此應用程式支援多位元組字元,因此,這可能不相等於 20,000 個字元。

    如果方程式需要超過 20,000 個位元組的資訊,您必須在自訂查詢主題檔案中建立計算,如 建立計算中所述。

  • 當您探索所有計算的可能性時,您應該執行的作業之間會有很大的差別。 雖然可能會向上查詢關係樹狀結構(亦即,根據上代來計算值),但強烈建議不要這麼做。

    以建立結合(有助於提升向下查詢關係樹狀結構的效能)的方式來設定產生自動架構。

    附註: 樹狀結構中的查詢會導致計算欄位效能不正確,並對資料庫造成很大的壓力,導致整個應用程式變慢。
  • 計算欄位有時候可以當作其他計算欄位的構成要素。 這些稱為中繼計算。 目前 IBM OpenPages® with Watson™ 應用程式不支援透過應用程式使用者介面的中間計算定義。 如果您要參照另一個計算欄位,則必須將該計算欄位中使用的方程式抄寫到在現行欄位的方程式中。

    範例

    例如,如果我們有計算欄位 A 並將它定義為 A = B * C,而且我們也知道 C = D + E,則在方程式為 B * (D + E) 的應用程式中,我們只會建立一個計算欄位 A。 雖然這種方式可能會很冗長,但有時候這是最簡單的方式。

  • 計算欄位中使用的定義必須存在於您使用的名稱空間中,而且必須與要在其中建立計算欄位的物件相關。 建立的計算欄位可能在表單中是有效的,但因為此限制而尚未產生任何結果。

設計考量

在設計計算欄位時,請將下列項目納入考量:

本地化
應用程式會將所有計算的資料類型本地化,但「簡式字串」除外,這種字串必須在計算(方程式)的過程中本地化。
相依計算欄位
不支援計算使用另一個計算作為其方程式的一部分。
計算交叉結果
在編寫跨多重物件類型聚集的計算時,通常會遇到某些物件會計數多次的問題,因此您必須考量到這一點。
處理空值
在編寫方程式時,您必須考量到,如果方程式有部分會評估為空值,然後又用在某個其他算術運算中,則第二個運算也會傳回空值。 此問題的解決方法是 nvl() 函數,其採用下列兩個引數:一個是表示式,用來評估和檢查其是否為空值,另一個是值,在其為空值時使用。 例如:
average (nvl(Loss Impacts, 0) for Loss Events) * count 
       ( nvl(distinct Loss Impacts for Loss Events, 0))