在源文件中,并非所有行都包含所有字段。例如,在下面所示的 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