ソース・ファイル内では、すべての行にすべてのフィールドが含まれているわけではありません。たとえば、次に示す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