IBM FileNet P8, 5.2.1 版            

數值函數

本節包含適用於浮點或整數值之函數的簡要說明。

表 1. 適用於浮點或整數值之函數的表格
函數 作用
abs 傳回數值函數的絕對值。
bitor、bitand、bitnot 提供位元的布林操作。
convert 將數字轉換成另一種資料類型,或將另一種資料類型轉換成數字。
err_encode 將三段式 FileNet® P8 錯誤值組轉換成單一整數。
int 將小數點之後的所有項目截斷,並傳回數值表示式的整數值。
max 從任何受支援資料類型的表示式清單中傳回最大值。
min 從任何受支援資料類型的表示式清單中傳回最小值。
mod 傳回除法之後的餘數(模數)。
numbertostring 使用指定的遮罩,將數值表示式轉換成字串表示式。
random 傳回指定範圍內的隨機整數。
sizeof 傳回陣列大小。

abs

此函數傳回整數或浮點表示式的絕對值。請使用下列語法:
abs (num_expr)
其中 num_exp 是結果為 Integer 或 Float 類型的表示式。 例如:
abs (SalePrice - PurchasePrice)

bitand、bitor 及 bitnot

這些函數提供位元的布林操作;您可以使用它們來執行許多作業,例如遮罩設定及擷取位元。每一個函數最多可同時對 32 個項目執行布林運算。

如果您熟悉 'C' 程式設計語言,則 bitand、bitor 及 bitnot 分別就像邏輯 and (&)、邏輯 or (|) 及邏輯 not (~)。 如果您不熟悉 'C',請將數字視為二進位值(例如,123 會是 1111011)。

這些函數採用 32 位元整數(也就是從 0 到 42946967295)作為輸入,並傳回相同範圍內的整數作為輸出。請使用下列語法:
bitand (expr1, expr2)

bitor (expr1, expr2)

bitnot (expr)
其中 expr1 和 expr2 是 32 位元整數。
如需每一個函數的特定相關資訊和範例,請從下列清單中選取主題。

bitand

bitand 函數會對兩個整數中的對應位元進行 "ands" 運算。這是一種逐位元比較,比較的結果會輸出為一個新的整數。 這項比較遵循以下規則:
  • 如果兩個整數在相同的位置包含 1,則產生的整數也會在該位置包含 1。
  • 如果兩個整數在相同的位置包含 0,則產生的整數也會在該位置包含 0。
  • 如果一個整數包含 1,另一個整數在相同的位置包含 0,則產生的整數會在該位置包含 0。
例如,bitand (123, 240) 可顯示如下。
bitand

     (00000000000000000000000001111011,
         

      00000000000000000000000011110000)
          

  results in: 
      00000000000000000000000001110000

bitor

bitor 函數會對兩個整數中的對應位元進行 "ors" 運算。這個逐位元比較的結果會輸出為一個新的整數。這項比較遵循以下規則:
  • 如果任一整數在相同的位置包含 1,則產生的整數也會在該位置包含 1。
  • 如果兩個整數在相同的位置包含 0,則產生的整數也會在該位置包含 0。
例如,bitor (123, 240) 可如下所示視覺化。
bitor
     (00000000000000000000000001111011,
         
      00000000000000000000000011110000)
          
  results in:

      00000000000000000000000011111011

bitnot

bitnot 函數會對整數進行 "nots" 運算;這個逐位元分析的結果會輸出為一個新的整數。針對每一個位置,新的整數會包含相反的位元值,例如,這表示如果輸入整數在給定的位置包含 1,則新的整數會在相同的位置包含 0。

例如,bitnot (123) 可顯示如下。
bitnot
              (00000000000000000000000001111011
  results in:
               11111111111111111111111110000100

int

此函數會將小數點之後的任何項目截斷,以計算浮點表示式的整數值。 例如,浮點值 6.2 和 6.8 會轉換成整數值 6。數字符號不變。

請使用下列語法:
int (num_expr)
其中 num_expr 是結果為 Float 類型的表示式。例如:
int (365 / 7)

mod

此函數傳回除法之後的餘數(模數)。請注意,如果您嘗試將某值除以零,則會發生執行時期錯誤。

請使用下列語法:
mod (num1, num2)
其中 num1 和 num2 是 Float 或 Integer 類型的變數,且可包含負值。
在下列範例中,此函數傳回 NumberOfDays 除以 7 的餘數。
mod (NumberOfDays, 7)
請注意,num2 的符號決定 mod 函數輸出的符號(當輸出不等於 0 時):
If num2 > 0,

				0 <= mod (num1, num2) < num2

If num2 < 0,

				num2 < mod (num1, num2) <= 0

random

部分應用程式需要方法來產生隨機整數,也許是執行隨機取樣的方法。 此函數傳回指定範圍內的隨機整數。它需要一個整數來作為決定範圍的參數。

請使用下列語法:
random (num)
其中 num 是 2 到 32768 的整數(包括兩端)。範圍介於 0 和 num - 1 之間。在上述範例中,如果 num 是 23,則隨機整數會落在 0 與 22 之間。

err_encode

此函數將三段式 FileNet P8 錯誤值組轉換成整數值,您可以將它與呼叫「WorkFlo 應用檔案庫 (WAL)」進入點所傳回的結果碼相互比較。 當正常處理中發生異常狀況(如簡式資料處理中的檔案結尾),或當發生錯誤時,WAL 會傳回結果碼。

err_encode 的主要用途是根據 WAL 呼叫作業所傳回的結果來進行工作項目的後續處理。通常,這種作業後面會接著 Branch 系統指令;當 Branch 執行時,工作項目會遵循先前作業傳回的結果碼所決定的處理路徑。 例如,在 Branch 定義中使用 err_code 函數來指出,如果 <return code> = err_encode (80, 0, 2),則工作項目遵循一個處理路徑,而如果 <return code> = err_encode (80, 0, 5),則遵循另一個處理路徑。

請使用下列語法:
err_encode (mod_num, func_num, err_num)
其中:
表 2. err_encode 函數的參數及說明
參數 說明
mod_num 結果碼的第一部分。它是整數表示式(範圍為 0-255),其指出哪一個服務、檔案庫或應用程式為錯誤的來源。
func_num 結果碼的第二部分。它是整數表示式(範圍為 0-255),其指出錯誤來自哪一個函數或模組,或是錯誤屬於哪一個種類。
err_num 結果碼的第三部分。它是整數表示式(範圍為 0-65535),其指出錯誤碼。


前次更新: 2015 年 10 月
bpfe010.htm

© Copyright IBM Corp. 2015.