在來源檔案中,並非所有行都包含所有欄位。例如,在以下顯示的 Georgia 畫面中,0565 0565 Test 3
等的實體值會顯示在每個報表區段標頭的「Bus Area/Dept」標籤之後,但不會顯示在每一行中。因此,實體值必須儲存在全域變數中並指派給來源檔案的行。
對於 Georgia
檔案,若要將實體值儲存在全域變數中,您要在「匯入格式」畫面中,將下列指令碼指派給「金額」列的「運算式」欄位。指令碼使用 if..
陳述式和 string
函數來判斷各行是否包含 Bus Area / Dept:
標籤。如果某行包含該標籤,指令碼會將實體值 (位於位置 33 處並包含 4 個字元) 儲存在全域變數中。如果某行不包含該標籤,會傳回 strfield
。
若要使用全域變數,請在匯入函數之外定義字串變數。將值指派給匯入函數內部的變數時,請指定為全域。藉由在函數之外定義變數,該變數便可以在該階段作業的任何函數中使用。
全域變數在目前 Oracle Hyperion Financial Data Quality Management, Enterprise Edition 資料載入程序中將一直保持為可使用 (這一點與區域變數不同,區域變數的值將隨目前指令碼的關閉而丟失)。這樣一來,其他指令碼便可以擷取從某個指令碼中儲存的值。
GeorgiaCenter = ""
def GeorgiaGetCenter (strfield, strrecord):
if strrecord[15:31] == "Bus Area / Dept:":
global GeorgiaCenter
GeorgiaCenter = strrecord[32:36]
return strfield