ABN 検索 Web サイトでオーストラリア ビジネス レジスターに登録されている企業の ABN を含むテーブルを作成するコード
abn_lookup
スキーマには 3 つのテーブルがあります。
abns
: これは、登録された ABN 番号を持つ各エンティティの識別情報を含むメイン テーブルです。
trading_names
: このテーブルには、登録された ABN を持つ各企業の取引名が含まれます。
dgr
: このテーブルには、各 ABN の控除対象ギフト受取人品目の名前が含まれています。
abns
このテーブルには、これまでに登録された各 ABN 番号のエントリと、.フィールドは、
abn
: 文字列として書かれた ABN 番号。
abn_status
: このフィールドは、ABN に関連付けられたエンティティがアクティブ (このフィールドが文字列 'ACT' と等しい) か、キャンセルされた (このフィールドが文字列 'CAN' と等しい) かを詳細に示します。
abn_status_from_date
: ABN が登録された日付です。
record_last_updated_date
: ABN に関連付けられた情報が最後に更新された日付。
replaced
: (この ABN が別の ABN を置き換えたかどうか ???)
entity_type_ind
: このフィールドには、インデックスとしてエンティティ タイプが含まれます (ここでは ABR によって指定されます)。
entity_type_text
: このフィールドには、テキストとして書き込まれたエンティティ タイプが含まれます。
asic_number
: エンティティが ASIC に登録されている場合は、エンティティの登録済み ACN または ARBN。
asic_number_type
: asic_number
のタイプ (注: 今のところ、ABR は実際にはこの列を使用していないようです)
gst_status
: このフィールドは、エンティティが GST に登録済みか、または過去に登録したかどうかを詳細に示します。エンティティが現在登録されている場合、このフィールドは文字列「ACT」と等しくなります。エンティティが GST に登録されているが、その後登録がキャンセルされた場合、このフィールドは「CAN」と等しくなります。エンティティが GST に登録したことがない場合、このフィールドは「NON」と等しくなります。
gst_status_from_date
: エンティティが GST に登録された日付。 gst_status
が「NON」の場合は NULL と等しくなります。
main_ent_type
: メインエンティティのタイプ (該当する場合) (注: この列は冗長である可能性があります)
main_ent_name
: エンティティが個人ではない場合、エンティティの名前。
main_ent_add_state
: エンティティが個人ではない場合、エンティティのアドレスの状態。
main_ent_add_postcode
: エンティティが個人ではない場合、エンティティの住所の郵便番号。
legal_ent_type
: 法人のタイプ (該当する場合) (注: この列は冗長である可能性があります)
legal_ent_title
: エンティティが個人の場合、エンティティの名前の役職 (例: Mr、Mrs、Dr など)。
legal_ent_family_name
: エンティティが個人の場合、エンティティの姓。
legal_ent_given_names
: エンティティが個人の場合、エンティティの指定された名前。1 つの文字列として順番に書き込まれます。
legal_ent_add_state
: エンティティが個人の場合、エンティティの住所の州。
legal_ent_add_postcode
: エンティティが個人の場合、エンティティの住所の郵便番号。
trading_names
このテーブルには、特定の ABN を持つ企業がビジネスを行うすべての登録商号と商号が含まれています。テーブルの各行は、元の一括抽出 XML ファイル内のOtherEntity
ノードの単一インスタンスに対応します。フィールドは次のとおりです。
abn
: エンティティの ABN。name
: 会社名または商号type
: 名前のタイプ。ビジネス名 ('BN')、商号 ('TRD')、またはその他 ('OTN') です。 dgr
このテーブルには、特定の ABN を持つエンティティのすべての寄付ギフト受信者 (DGR) アイテムが含まれています。テーブルの各行は、元の一括抽出 XML ファイル内のDGR
ノードの単一インスタンスに対応します。フィールドは次のとおりです。
abn
: エンティティの ABN。name
: 寄付ギフト受取人のアイテムの名前。type
: 名前のタイプ (これは常に「DGR」であるようで、おそらく冗長です)。dgr_status_from_date
: DGR アイテムが登録された日付。 get_abn_lookup_data.py
: これがメインプログラムです。自動化されたヘッドレス Selenium Web ブラウザを使用して、 data.gov.au
上の ABN Bulk Extract データのダウンロード ページに移動し、2 つの zip ファイルをダウンロードし、zip から一時ディレクトリabn_lookup/xml_files
に xml ファイルを抽出します。次に、以下で説明するプログラムを使用して、xml ファイルを多数の csv 出力に変換します。これらの CSV 出力は、 psql
コマンドを使用して、これらの出力をテーブルabns
、 trading_names
、およびdgr
に直接書き込むコマンドにパイプされます。次に、このプログラムは、前のタスクの実行が成功したか失敗したかに基づいて、以下で説明するいくつかの SQL スクリプトを使用して、古いテーブルを削除して新しいテーブルを保持するか、生成された新しいテーブルを削除して古いテーブルを保持するかを決定します。 。
xml_to_csv_abns.xsl
: これは、元の xml ファイルの 1 つをテーブルabns
の構造に対応する csv 形式に XSLT 変換するために、プログラム XSLT によって使用される xsl スクリプトです。この出力はパイプ処理されて、このテーブルに書き込まれます。
xml_to_csv_trading_names.xsl
: 上記と同じですが、 trading_names
テーブル用です。
xml_to_csv_dgr.xsl
: 上記と同じですが、 dgr
テーブル用です。
create_new_abn_lookup_tables.sql
: この SQL スクリプトは、 abn_lookup
の現在のテーブルの名前をabns_old
、 trading_names_old
およびdgr_old
に変更し、 abns
、 trading_names
およびdgr
という名前の新しいテーブルを作成します。
delete_old_abn_lookup_tables.sql
: この SQL スクリプトは、 abns_old
、 trading_names_old
、およびdgr_old
を削除します。これは、ABN 一括抽出からのすべての XML ファイルの処理が成功した場合に、 get_abn_lookup_data.py
によって利用されます。
keep_old_abn_lookup_tables.sql
: この SQL スクリプトは、新しく生成されたabns
、 trading_names
、およびdgr
削除し、 abns_old
、 trading_names_old
、およびdgr_old
名前を元の名前に戻します。これは、ABN 一括抽出からの 1 つ以上の XML ファイルの処理に失敗した場合に、 get_abn_lookup_data.py
によって利用されます。