用于在 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
会利用这一点。