用於在 ABN 查找網站上為在澳洲商業登記處註冊的公司建立包含 ABN 的表的代碼
abn_lookup
架構中有三個表:
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 是否已替換另一個 ???)
entity_type_ind
:此欄位包含實體類型作為索引(如此處的 ABR 給出)
entity_type_text
:此欄位包含以文字形式編寫的實體類型。
asic_number
:實體的註冊 ACN 或 ARBN(如果實體已向 ASIC 註冊)。
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
:如果實體是個人,則實體名稱的頭銜(即先生、夫人、博士等...)。
legal_ent_family_name
:實體的姓氏(如果該實體是個人)。
legal_ent_given_names
:實體的名字,如果該實體是個人,則按順序寫為一個字串。
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 批量提取資料的下載頁面,下載兩個 zip 文件,然後將 zip 檔案中的 xml 檔案提取到臨時目錄abn_lookup/xml_files
中,然後使用下面描述的程式將xml 檔案轉換為多個csv 輸出。這些 csv 輸出透過管道傳輸到命令中,該命令使用psql
命令將這些輸出直接寫入表abns
、 trading_names
和dgr
。然後,程式根據上一個任務的成功或失敗來決定是刪除舊表並保留新表,還是刪除產生的新表並保留舊表,使用下面描述的許多 SQL 腳本。
xml_to_csv_abns.xsl
:這是 XSLT 程式使用的 xsl 腳本,用於將原始 xml 檔案之一執行 XSLT 轉換為與表abns
的結構相對應的 csv 格式。此輸出會經由管道傳送,然後寫入該表中。
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 批次提取的一個或多個 xml 檔案發生故障時, get_abn_lookup_data.py
會利用這一點。