儲存暫存變數

在來源檔案中,並非所有行都包含所有欄位。例如,在以下顯示的 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

影像顯示 Georgia.glo 總帳檔案的內容。其實體值包含在各報表區段頂端的標頭中。