一時変数の保管

ソース・ファイル内では、すべての行にすべてのフィールドが含まれているわけではありません。たとえば、次に示す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一般会計ファイルの内容を示します。エンティティ値は各レポート・セクションの最上部のヘッダーに含まれます。