import textwrap class VjskReceiveFileMapper: """ V実消化データファイルI/Fマッピング定義クラス """ CONDKEY_SLIP_DATA = "SLIP_DATA" # 販売実績データ CONDKEY_HLD_MST = "HLD_MST" # V卸ホールディングスマスタ CONDKEY_WHS_MST = "WHS_MST" # V卸マスタ CONDKEY_MKR_ORG_HORIZON = "MKR_ORG_HORIZON" # Vメーカー卸組織展開表 CONDKEY_ORG_CNV_MST = "ORG_CNV_MST" # V卸組織変換マスタ CONDKEY_TRAN_KBN_MST = "TRAN_KBN_MST" # V取引区分マスタ CONDKEY_FCL_MST = "FCL_MST" # V施設マスタ CONDKEY_PHM_PRD_MST = "PHM_PRD_MST" # V製品マスタ CONDKEY_PHM_PRICE_MST = "PHM_PRICE_MST" # V製品価格マスタ CONDKEY_VOP_HCO_MERGE = "VOP_HCO_MERGE" # V施設統合マスタ CONDKEY_WHS_CUSTOMER_MST = "WHS_CUSTOMER_MST" # V卸得意先情報マスタ CONDKEY_MDB_CONV_MST = "MDB_CONV_MST" # MDBコード変換表 CONDKEY_STOCK_SLIP_DATA = "STOCK_SLIP_DATA" # 卸在庫データ CONDKEY_BIO_SLIP_DATA = "BIO_SLIP_DATA" # 生物由来データ CONDKEY_LOT_NUM_MST = "LOT_NUM_MST" # ロットマスタデータ _KEY_DATA_NAME = "data_name" _KEY_FILE_PREFIX = "file_prefix" _KEY_FILE_SUFFIX = "file_suffix" _KEY_FILE_COLUMN_SEPARATORS = "file_column_separators" _KEY_ORG_TABLE = "org_table" _KEY_SRC_TABLE = "src_table" _KEY_UPSERT_SQL = "upsert_sql" _VJSK_INTERFACE_MAPPING = { # 販売実績データ CONDKEY_SLIP_DATA: { _KEY_DATA_NAME: "販売実績データ", _KEY_FILE_PREFIX: "slip_data_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "82", _KEY_ORG_TABLE: "org05.sales", _KEY_SRC_TABLE: "src05.sales", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.sales ( rec_data ,rec_whs_cd ,rec_whs_sub_cd ,rec_whs_org_cd ,rec_cust_cd ,rec_comm_cd ,rec_tran_kbn ,rev_hsdnymd_wrk ,rev_hsdnymd_srk ,rec_urag_num ,rec_qty ,rec_nonyu_price ,rec_nonyu_amt ,rec_comm_name ,rec_nonyu_fcl_name ,free_item ,rec_nonyu_fcl_addr ,rec_nonyu_fcl_post ,rec_nonyu_fcl_tel ,rec_bef_hsdn_ymd ,rec_bef_slip_num ,rec_ymd ,sale_data_cat ,slip_file_name ,slip_mgt_num ,row_num ,hsdn_ymd ,exec_dt ,v_tran_cd ,tran_kbn_name ,whs_org_cd ,v_whsorg_cd ,whs_org_name ,whs_org_kn ,v_whs_cd ,whs_name ,nonyu_fcl_cd ,v_inst_cd ,v_inst_kn ,v_inst_name ,v_inst_addr ,comm_cd ,comm_name ,nonyu_qty ,nonyu_price ,nonyu_amt ,shikiri_price ,shikiri_amt ,nhi_price ,nhi_amt ,whspos_err_kbn ,htdnymd_err_kbn ,prd_exis_kbn ,fcl_exis_kbn ,bef_hsdn_ymd ,bef_slip_num ,slip_org_kbn ,err_flg1 ,err_flg2 ,err_flg3 ,err_flg4 ,err_flg5 ,err_flg6 ,err_flg7 ,err_flg8 ,err_flg9 ,err_flg10 ,err_flg11 ,err_flg12 ,err_flg13 ,err_flg14 ,err_flg15 ,err_flg16 ,err_flg17 ,err_flg18 ,err_flg19 ,err_flg20 ,kjyo_ym ,tksnbk_kbn ,fcl_exec_kbn ,rec_sts_kbn ,ins_dt ,ins_usr ,dwh_upd_dt ) SELECT t.rec_data ,t.rec_whs_cd ,t.rec_whs_sub_cd ,t.rec_whs_org_cd ,t.rec_cust_cd ,t.rec_comm_cd ,t.rec_tran_kbn ,t.rev_hsdnymd_wrk ,t.rev_hsdnymd_srk ,t.rec_urag_num ,t.rec_qty ,t.rec_nonyu_price ,t.rec_nonyu_amt ,t.rec_comm_name ,t.rec_nonyu_fcl_name ,t.free_item ,t.rec_nonyu_fcl_addr ,t.rec_nonyu_fcl_post ,t.rec_nonyu_fcl_tel ,t.rec_bef_hsdn_ymd ,t.rec_bef_slip_num ,t.rec_ymd ,t.sale_data_cat ,t.slip_file_name ,t.slip_mgt_num ,t.row_num ,t.hsdn_ymd ,t.exec_dt ,t.v_tran_cd ,t.tran_kbn_name ,t.whs_org_cd ,t.v_whsorg_cd ,t.whs_org_name ,t.whs_org_kn ,t.v_whs_cd ,t.whs_name ,t.nonyu_fcl_cd ,t.v_inst_cd ,t.v_inst_kn ,t.v_inst_name ,t.v_inst_addr ,t.comm_cd ,t.comm_name ,t.nonyu_qty ,t.nonyu_price ,t.nonyu_amt ,t.shikiri_price ,t.shikiri_amt ,t.nhi_price ,t.nhi_amt ,t.whspos_err_kbn ,t.htdnymd_err_kbn ,t.prd_exis_kbn ,t.fcl_exis_kbn ,t.bef_hsdn_ymd ,t.bef_slip_num ,t.slip_org_kbn ,t.err_flg1 ,t.err_flg2 ,t.err_flg3 ,t.err_flg4 ,t.err_flg5 ,t.err_flg6 ,t.err_flg7 ,t.err_flg8 ,t.err_flg9 ,t.err_flg10 ,t.err_flg11 ,t.err_flg12 ,t.err_flg13 ,t.err_flg14 ,t.err_flg15 ,t.err_flg16 ,t.err_flg17 ,t.err_flg18 ,t.err_flg19 ,t.err_flg20 ,t.kjyo_ym ,t.tksnbk_kbn ,t.fcl_exec_kbn ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,t.ins_usr ,SYSDATE() FROM org05.sales AS t ON DUPLICATE KEY UPDATE rec_data=t.rec_data ,rec_whs_cd=t.rec_whs_cd ,rec_whs_sub_cd=t.rec_whs_sub_cd ,rec_whs_org_cd=t.rec_whs_org_cd ,rec_cust_cd=t.rec_cust_cd ,rec_comm_cd=t.rec_comm_cd ,rec_tran_kbn=t.rec_tran_kbn ,rev_hsdnymd_wrk=t.rev_hsdnymd_wrk ,rev_hsdnymd_srk=t.rev_hsdnymd_srk ,rec_urag_num=t.rec_urag_num ,rec_qty=t.rec_qty ,rec_nonyu_price=t.rec_nonyu_price ,rec_nonyu_amt=t.rec_nonyu_amt ,rec_comm_name=t.rec_comm_name ,rec_nonyu_fcl_name=t.rec_nonyu_fcl_name ,free_item=t.free_item ,rec_nonyu_fcl_addr=t.rec_nonyu_fcl_addr ,rec_nonyu_fcl_post=t.rec_nonyu_fcl_post ,rec_nonyu_fcl_tel=t.rec_nonyu_fcl_tel ,rec_bef_hsdn_ymd=t.rec_bef_hsdn_ymd ,rec_bef_slip_num=t.rec_bef_slip_num ,rec_ymd=t.rec_ymd ,sale_data_cat=t.sale_data_cat ,slip_file_name=t.slip_file_name ,slip_mgt_num=t.slip_mgt_num ,row_num=t.row_num ,hsdn_ymd=t.hsdn_ymd ,exec_dt=t.exec_dt ,v_tran_cd=t.v_tran_cd ,tran_kbn_name=t.tran_kbn_name ,whs_org_cd=t.whs_org_cd ,v_whsorg_cd=t.v_whsorg_cd ,whs_org_name=t.whs_org_name ,whs_org_kn=t.whs_org_kn ,v_whs_cd=t.v_whs_cd ,whs_name=t.whs_name ,nonyu_fcl_cd=t.nonyu_fcl_cd ,v_inst_cd=t.v_inst_cd ,v_inst_kn=t.v_inst_kn ,v_inst_name=t.v_inst_name ,v_inst_addr=t.v_inst_addr ,comm_cd=t.comm_cd ,comm_name=t.comm_name ,nonyu_qty=t.nonyu_qty ,nonyu_price=t.nonyu_price ,nonyu_amt=t.nonyu_amt ,shikiri_price=t.shikiri_price ,shikiri_amt=t.shikiri_amt ,nhi_price=t.nhi_price ,nhi_amt=t.nhi_amt ,whspos_err_kbn=t.whspos_err_kbn ,htdnymd_err_kbn=t.htdnymd_err_kbn ,prd_exis_kbn=t.prd_exis_kbn ,fcl_exis_kbn=t.fcl_exis_kbn ,bef_hsdn_ymd=t.bef_hsdn_ymd ,bef_slip_num=t.bef_slip_num ,slip_org_kbn=t.slip_org_kbn ,err_flg1=t.err_flg1 ,err_flg2=t.err_flg2 ,err_flg3=t.err_flg3 ,err_flg4=t.err_flg4 ,err_flg5=t.err_flg5 ,err_flg6=t.err_flg6 ,err_flg7=t.err_flg7 ,err_flg8=t.err_flg8 ,err_flg9=t.err_flg9 ,err_flg10=t.err_flg10 ,err_flg11=t.err_flg11 ,err_flg12=t.err_flg12 ,err_flg13=t.err_flg13 ,err_flg14=t.err_flg14 ,err_flg15=t.err_flg15 ,err_flg16=t.err_flg16 ,err_flg17=t.err_flg17 ,err_flg18=t.err_flg18 ,err_flg19=t.err_flg19 ,err_flg20=t.err_flg20 ,kjyo_ym=t.kjyo_ym ,tksnbk_kbn=t.tksnbk_kbn ,fcl_exec_kbn=t.fcl_exec_kbn ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,ins_usr=t.ins_usr ,dwh_upd_dT=SYSDATE() ; """) }, # V卸ホールディングスマスタ CONDKEY_HLD_MST: { _KEY_DATA_NAME: "V卸ホールディングスマスタ", _KEY_FILE_PREFIX: "hld_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "10", _KEY_ORG_TABLE: "org05.hld_mst_v", _KEY_SRC_TABLE: "src05.hld_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.hld_mst_v ( v_hld_cd ,sub_num ,name ,kn_name ,abb_name ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.v_hld_cd ,t.sub_num ,t.name ,t.kn_name ,t.abb_name ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.hld_mst_v AS t ON DUPLICATE KEY UPDATE v_hld_cd=t.v_hld_cd ,sub_num=t.sub_num ,name=t.name ,kn_name=t.kn_name ,abb_name=t.abb_name ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,dwh_upd_dt=SYSDATE() ; """) }, # V卸マスタ CONDKEY_WHS_MST: { _KEY_DATA_NAME: "V卸マスタ", _KEY_FILE_PREFIX: "whs_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "15", _KEY_ORG_TABLE: "org05.whs_mst_v", _KEY_SRC_TABLE: "src05.whs_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.whs_mst_v ( v_whs_cd ,sub_num ,name ,kn_name ,abb_name ,postal_cd ,addr ,kn_addr ,tel_num ,v_hld_cd ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.v_whs_cd ,t.sub_num ,t.name ,t.kn_name ,t.abb_name ,t.postal_cd ,t.addr ,t.kn_addr ,t.tel_num ,t.v_hld_cd ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.whs_mst_v AS t ON DUPLICATE KEY UPDATE v_whs_cd=t.v_whs_cd ,sub_num=t.sub_num ,name=t.name ,kn_name=t.kn_name ,abb_name=t.abb_name ,postal_cd=t.postal_cd ,addr=t.addr ,kn_addr=t.kn_addr ,tel_num=t.tel_num ,v_hld_cd=t.v_hld_cd ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # Vメーカー卸組織展開表 CONDKEY_MKR_ORG_HORIZON: { _KEY_DATA_NAME: "Vメーカー卸組織展開表", _KEY_FILE_PREFIX: "mkr_org_horizon_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "45", _KEY_ORG_TABLE: "org05.mkr_org_horizon_v", _KEY_SRC_TABLE: "src05.mkr_org_horizon_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.mkr_org_horizon_v ( vid_kind_1 ,v_cd_1 ,name_1 ,dsp_odr_1 ,vid_kind_2 ,v_cd_2 ,name_2 ,dsp_odr_2 ,vid_kind_3 ,v_cd_3 ,name_3 ,dsp_odr_3 ,vid_kind_4 ,v_cd_4 ,name_4 ,dsp_odr_4 ,vid_kind_5 ,v_cd_5 ,name_5 ,dsp_odr_5 ,vid_kind_6 ,v_cd_6 ,name_6 ,dsp_odr_6 ,vid_kind_7 ,v_cd_7 ,name_7 ,dsp_odr_7 ,vid_kind_8 ,v_cd_8 ,name_8 ,dsp_odr_8 ,vid_kind_9 ,v_cd_9 ,name_9 ,dsp_odr_9 ,vid_kind_10 ,v_cd_10 ,name_10 ,dsp_odr_10 ,v_whs_cd ,start_date ,end_date ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.vid_kind_1 ,t.v_cd_1 ,t.name_1 ,t.dsp_odr_1 ,t.vid_kind_2 ,t.v_cd_2 ,t.name_2 ,t.dsp_odr_2 ,t.vid_kind_3 ,t.v_cd_3 ,t.name_3 ,t.dsp_odr_3 ,t.vid_kind_4 ,t.v_cd_4 ,t.name_4 ,t.dsp_odr_4 ,t.vid_kind_5 ,t.v_cd_5 ,t.name_5 ,t.dsp_odr_5 ,t.vid_kind_6 ,t.v_cd_6 ,t.name_6 ,t.dsp_odr_6 ,t.vid_kind_7 ,t.v_cd_7 ,t.name_7 ,t.dsp_odr_7 ,t.vid_kind_8 ,t.v_cd_8 ,t.name_8 ,t.dsp_odr_8 ,t.vid_kind_9 ,t.v_cd_9 ,t.name_9 ,t.dsp_odr_9 ,t.vid_kind_10 ,t.v_cd_10 ,t.name_10 ,t.dsp_odr_10 ,t.v_whs_cd ,t.start_date ,t.end_date ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.mkr_org_horizon_v AS t ON DUPLICATE KEY UPDATE vid_kind_1=t.vid_kind_1 ,v_cd_1=t.v_cd_1 ,name_1=t.name_1 ,dsp_odr_1=t.dsp_odr_1 ,vid_kind_2=t.vid_kind_2 ,v_cd_2=t.v_cd_2 ,name_2=t.name_2 ,dsp_odr_2=t.dsp_odr_2 ,vid_kind_3=t.vid_kind_3 ,v_cd_3=t.v_cd_3 ,name_3=t.name_3 ,dsp_odr_3=t.dsp_odr_3 ,vid_kind_4=t.vid_kind_4 ,v_cd_4=t.v_cd_4 ,name_4=t.name_4 ,dsp_odr_4=t.dsp_odr_4 ,vid_kind_5=t.vid_kind_5 ,v_cd_5=t.v_cd_5 ,name_5=t.name_5 ,dsp_odr_5=t.dsp_odr_5 ,vid_kind_6=t.vid_kind_6 ,v_cd_6=t.v_cd_6 ,name_6=t.name_6 ,dsp_odr_6=t.dsp_odr_6 ,vid_kind_7=t.vid_kind_7 ,v_cd_7=t.v_cd_7 ,name_7=t.name_7 ,dsp_odr_7=t.dsp_odr_7 ,vid_kind_8=t.vid_kind_8 ,v_cd_8=t.v_cd_8 ,name_8=t.name_8 ,dsp_odr_8=t.dsp_odr_8 ,vid_kind_9=t.vid_kind_9 ,v_cd_9=t.v_cd_9 ,name_9=t.name_9 ,dsp_odr_9=t.dsp_odr_9 ,vid_kind_10=t.vid_kind_10 ,v_cd_10=t.v_cd_10 ,name_10=t.name_10 ,dsp_odr_10=t.dsp_odr_10 ,v_whs_cd=t.v_whs_cd ,start_date=t.start_date ,end_date=t.end_date ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V卸組織変換マスタ CONDKEY_ORG_CNV_MST: { _KEY_DATA_NAME: "V卸組織変換マスタ", _KEY_FILE_PREFIX: "org_cnv_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "10", _KEY_ORG_TABLE: "org05.org_cnv_mst_v", _KEY_SRC_TABLE: "src05.org_cnv_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.org_cnv_mst_v ( whs_cd ,whs_sub_cd ,org_cd ,sub_num ,v_org_cd ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.whs_cd ,t.whs_sub_cd ,t.org_cd ,t.sub_num ,t.v_org_cd ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.org_cnv_mst_v AS t ON DUPLICATE KEY UPDATE whs_cd=t.whs_cd ,whs_sub_cd=t.whs_sub_cd ,org_cd=t.org_cd ,sub_num=t.sub_num ,v_org_cd=t.v_org_cd ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V取引区分マスタ CONDKEY_TRAN_KBN_MST: { _KEY_DATA_NAME: "V取引区分マスタ", _KEY_FILE_PREFIX: "tran_kbn_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "8", _KEY_ORG_TABLE: "org05.tran_kbn_mst_v", _KEY_SRC_TABLE: "src05.tran_kbn_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.tran_kbn_mst_v ( v_tran_cd ,sub_num ,name ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.v_tran_cd ,t.sub_num ,t.name ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.tran_kbn_mst_v AS t ON DUPLICATE KEY UPDATE v_tran_cd=t.v_tran_cd ,sub_num=t.sub_num ,name=t.name ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V施設マスタ CONDKEY_FCL_MST: { _KEY_DATA_NAME: "V施設マスタ", _KEY_FILE_PREFIX: "fcl_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "23", _KEY_ORG_TABLE: "org05.fcl_mst_v", _KEY_SRC_TABLE: "src05.fcl_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.fcl_mst_v ( v_inst_cd ,sub_num ,start_date ,end_date ,closed_dt ,fcl_name ,fcl_kn_name ,fcl_abb_name ,fcl_abb_kn_name ,mkr_cd ,jsk_proc_kbn ,fmt_addr ,fmt_kn_addr ,postal_cd ,prft_cd ,prft_name ,city_name ,addr_line_1 ,tel_num ,admin_kbn ,fcl_type ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.v_inst_cd ,t.sub_num ,t.start_date ,t.end_date ,t.closed_dt ,t.fcl_name ,t.fcl_kn_name ,t.fcl_abb_name ,t.fcl_abb_kn_name ,t.mkr_cd ,t.jsk_proc_kbn ,t.fmt_addr ,t.fmt_kn_addr ,t.postal_cd ,t.prft_cd ,t.prft_name ,t.city_name ,t.addr_line_1 ,t.tel_num ,t.admin_kbn ,t.fcl_type ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.fcl_mst_v AS t ON DUPLICATE KEY UPDATE v_inst_cd=t.v_inst_cd ,sub_num=t.sub_num ,start_date=t.start_date ,end_date=t.end_date ,closed_dt=t.closed_dt ,fcl_name=t.fcl_name ,fcl_kn_name=t.fcl_kn_name ,fcl_abb_name=t.fcl_abb_name ,fcl_abb_kn_name=t.fcl_abb_kn_name ,mkr_cd=t.mkr_cd ,jsk_proc_kbn=t.jsk_proc_kbn ,fmt_addr=t.fmt_addr ,fmt_kn_addr=t.fmt_kn_addr ,postal_cd=t.postal_cd ,prft_cd=t.prft_cd ,prft_name=t.prft_name ,city_name=t.city_name ,addr_line_1=t.addr_line_1 ,tel_num=t.tel_num ,admin_kbn=t.admin_kbn ,fcl_type=t.fcl_type ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V製品マスタ CONDKEY_PHM_PRD_MST: { _KEY_DATA_NAME: "V製品マスタ", _KEY_FILE_PREFIX: "phm_prd_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "27", _KEY_ORG_TABLE: "org05.phm_prd_mst_v", _KEY_SRC_TABLE: "src05.phm_prd_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.phm_prd_mst_v ( prd_cd ,sub_num ,prd_name ,prd_e_name ,mkr_cd ,mkr_inf_1 ,mkr_inf_2 ,phm_itm_cd ,itm_name ,itm_abb_name ,form_cd ,form_name ,vol_cd ,vol_name ,cont_cd ,cont_name ,pkg_cd ,pkg_name ,cnv_num ,jsk_start_dt ,prd_sale_kbn ,jsk_proc_kbn ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.prd_cd ,t.sub_num ,t.prd_name ,t.prd_e_name ,t.mkr_cd ,t.mkr_inf_1 ,t.mkr_inf_2 ,t.phm_itm_cd ,t.itm_name ,t.itm_abb_name ,t.form_cd ,t.form_name ,t.vol_cd ,t.vol_name ,t.cont_cd ,t.cont_name ,t.pkg_cd ,t.pkg_name ,t.cnv_num ,nullif(t.jsk_start_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,t.prd_sale_kbn ,t.jsk_proc_kbn ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.phm_prd_mst_v AS t ON DUPLICATE KEY UPDATE prd_cd=t.prd_cd ,sub_num=t.sub_num ,prd_name=t.prd_name ,prd_e_name=t.prd_e_name ,mkr_cd=t.mkr_cd ,mkr_inf_1=t.mkr_inf_1 ,mkr_inf_2=t.mkr_inf_2 ,phm_itm_cd=t.phm_itm_cd ,itm_name=t.itm_name ,itm_abb_name=t.itm_abb_name ,form_cd=t.form_cd ,form_name=t.form_name ,vol_cd=t.vol_cd ,vol_name=t.vol_name ,cont_cd=t.cont_cd ,cont_name=t.cont_name ,pkg_cd=t.pkg_cd ,pkg_name=t.pkg_name ,cnv_num=t.cnv_num ,jsk_start_dt=nullif(t.jsk_start_dt, 0) ,prd_sale_kbn=t.prd_sale_kbn ,jsk_proc_kbn=t.jsk_proc_kbn ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V製品価格マスタ CONDKEY_PHM_PRICE_MST: { _KEY_DATA_NAME: "V製品価格マスタ", _KEY_FILE_PREFIX: "phm_price_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "9", _KEY_ORG_TABLE: "org05.phm_price_mst_v", _KEY_SRC_TABLE: "src05.phm_price_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.phm_price_mst_v ( phm_prd_cd ,phm_price_kind ,sub_num ,price ,start_date ,end_date ,dsp_odr ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.phm_prd_cd ,t.phm_price_kind ,t.sub_num ,t.price ,t.start_date ,t.end_date ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.phm_price_mst_v AS t ON DUPLICATE KEY UPDATE phm_prd_cd=t.phm_prd_cd ,phm_price_kind=t.phm_price_kind ,sub_num=t.sub_num ,price=t.price ,start_date=t.start_date ,end_date=t.end_date ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # V施設統合マスタ CONDKEY_VOP_HCO_MERGE: { _KEY_DATA_NAME: "V施設統合マスタ", _KEY_FILE_PREFIX: "vop_hco_merge_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "3", _KEY_ORG_TABLE: "org05.vop_hco_merge_v", _KEY_SRC_TABLE: "src05.vop_hco_merge_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.vop_hco_merge_v ( v_inst_cd ,v_inst_cd_merg ,apply_dt ,merge_reason ,dwh_upd_dt ) SELECT t.v_inst_cd ,t.v_inst_cd_merg ,t.apply_dt ,t.merge_reason ,SYSDATE() FROM org05.vop_hco_merge_v AS t ON DUPLICATE KEY UPDATE v_inst_cd=t.v_inst_cd ,v_inst_cd_merg=t.v_inst_cd_merg ,apply_dt=t.apply_dt ,merge_reason=t.merge_reason ,dwh_upd_dt=SYSDATE() ; """) }, # V卸得意先情報マスタ CONDKEY_WHS_CUSTOMER_MST: { _KEY_DATA_NAME: "V卸得意先情報マスタ", _KEY_FILE_PREFIX: "whs_customer_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "16", _KEY_ORG_TABLE: "org05.whs_customer_mst_v", _KEY_SRC_TABLE: "src05.whs_customer_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.whs_customer_mst_v ( whs_cd ,whs_sub_cd ,customer_cd ,sub_num ,start_date ,end_date ,whs_org_cd ,src_org_cd ,name ,kn_name ,addr ,kn_addr ,postal_cd ,tel_num ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.whs_cd ,t.whs_sub_cd ,t.customer_cd ,t.sub_num ,t.start_date ,t.end_date ,t.whs_org_cd ,t.src_org_cd ,t.name ,t.kn_name ,t.addr ,t.kn_addr ,t.postal_cd ,t.tel_num ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.whs_customer_mst_v AS t ON DUPLICATE KEY UPDATE whs_cd=t.whs_cd ,whs_sub_cd=t.whs_sub_cd ,customer_cd=t.customer_cd ,sub_num=t.sub_num ,start_date=t.start_date ,end_date=t.end_date ,whs_org_cd=t.whs_org_cd ,src_org_cd=t.src_org_cd ,name=t.name ,kn_name=t.kn_name ,addr=t.addr ,kn_addr=t.kn_addr ,postal_cd=t.postal_cd ,tel_num=t.tel_num ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # MDBコード変換表 CONDKEY_MDB_CONV_MST: { _KEY_DATA_NAME: "MDBコード変換表", _KEY_FILE_PREFIX: "mdb_conv_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "7", _KEY_ORG_TABLE: "org05.mdb_cnv_mst_v", _KEY_SRC_TABLE: "src05.mdb_cnv_mst_v", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.mdb_cnv_mst_v ( hco_vid_v ,sub_num ,mdb_cd ,reliability ,start_date ,rec_sts_kbn ,ins_dt ,upd_dt ,dwh_upd_dt ) SELECT t.hco_vid_v ,t.sub_num ,t.mdb_cd ,t.reliability ,t.start_date ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.mdb_cnv_mst_v AS t ON DUPLICATE KEY UPDATE hco_vid_v=t.hco_vid_v ,sub_num=t.sub_num ,mdb_cd=t.mdb_cd ,reliability=t.reliability ,start_date=t.start_date ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) }, # 卸在庫データ CONDKEY_STOCK_SLIP_DATA: { _KEY_DATA_NAME: "卸在庫データ", _KEY_FILE_PREFIX: "stock_slip_data_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "28", _KEY_ORG_TABLE: "org05.whole_stock", _KEY_SRC_TABLE: "src05.whole_stock", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.whole_stock ( rec_data ,rec_whs_cd ,rec_whs_sub_cd ,rec_sto_place ,rec_stock_ymd ,rec_comm_cd ,rec_qty ,rec_stock_no_sign ,rec_jan_cd ,free_item ,rec_ymd ,sale_data_cat ,slip_file_name ,slip_mgt_num ,row_num ,exec_dt ,err_flg1 ,err_flg2 ,err_flg3 ,err_flg4 ,err_flg5 ,err_flg6 ,err_flg7 ,err_flg8 ,err_flg9 ,err_flg10 ,rec_sts_kbn ,ins_dt ,ins_usr ,dwh_upd_dt ) SELECT t.rec_data ,t.rec_whs_cd ,t.rec_whs_sub_cd ,t.rec_sto_place ,t.rec_stock_ymd ,t.rec_comm_cd ,t.rec_qty ,t.rec_stock_no_sign ,t.rec_jan_cd ,t.free_item ,t.rec_ymd ,t.sale_data_cat ,t.slip_file_name ,t.slip_mgt_num ,t.row_num ,t.exec_dt ,t.err_flg1 ,t.err_flg2 ,t.err_flg3 ,t.err_flg4 ,t.err_flg5 ,t.err_flg6 ,t.err_flg7 ,t.err_flg8 ,t.err_flg9 ,t.err_flg10 ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,t.ins_usr ,SYSDATE() FROM org05.whole_stock AS t ON DUPLICATE KEY UPDATE rec_data=t.rec_data ,rec_whs_cd=t.rec_whs_cd ,rec_whs_sub_cd=t.rec_whs_sub_cd ,rec_sto_place=t.rec_sto_place ,rec_stock_ymd=t.rec_stock_ymd ,rec_comm_cd=t.rec_comm_cd ,rec_qty=t.rec_qty ,rec_stock_no_sign=t.rec_stock_no_sign ,rec_jan_cd=t.rec_jan_cd ,free_item=t.free_item ,rec_ymd=t.rec_ymd ,sale_data_cat=t.sale_data_cat ,slip_file_name=t.slip_file_name ,slip_mgt_num=t.slip_mgt_num ,row_num=t.row_num ,exec_dt=t.exec_dt ,err_flg1=t.err_flg1 ,err_flg2=t.err_flg2 ,err_flg3=t.err_flg3 ,err_flg4=t.err_flg4 ,err_flg5=t.err_flg5 ,err_flg6=t.err_flg6 ,err_flg7=t.err_flg7 ,err_flg8=t.err_flg8 ,err_flg9=t.err_flg9 ,err_flg10=t.err_flg10 ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) ,ins_usr=t.ins_usr ,dwh_upd_dt=SYSDATE() ; """) }, # 生物由来データ CONDKEY_BIO_SLIP_DATA: { _KEY_DATA_NAME: "生物由来データ", _KEY_FILE_PREFIX: "bio_slip_data_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "77", _KEY_ORG_TABLE: "org05.bio_sales", _KEY_SRC_TABLE: "src05.bio_sales", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.bio_sales ( rec_data ,rec_whs_cd ,rec_whs_sub_cd ,rec_whs_org_cd ,rec_cust_cd ,rec_comm_cd ,rec_tran_kbn ,rev_hsdnymd_wrk ,rev_hsdnymd_srk ,rec_urag_num ,rec_comm_name ,rec_nonyu_fcl_name ,rec_nonyu_fcl_addr ,rec_lot_num1 ,rec_qty1 ,rec_lot_num2 ,rec_qty2 ,rec_lot_num3 ,rec_qty3 ,rec_ymd ,sale_data_cat ,slip_file_name ,slip_mgt_num ,row_num ,hsdn_ymd ,exec_dt ,v_tran_cd ,tran_kbn_name ,whs_org_cd ,v_whsorg_cd ,whs_org_name ,whs_org_kn ,v_whs_cd ,whs_name ,nonyu_fcl_cd ,v_inst_cd ,v_inst_name ,v_inst_kn ,v_inst_addr ,comm_cd ,product_name ,htdnymd_err_kbn ,prd_exis_kbn ,fcl_exis_kbn ,qty1 ,qty2 ,qty3 ,slip_org_kbn ,bef_slip_mgt_num ,whs_rep_comm_name ,whs_rep_nonyu_fcl_name ,whs_rep_nonyu_fcl_addr ,err_flg1 ,err_flg2 ,err_flg3 ,err_flg4 ,err_flg5 ,err_flg6 ,err_flg7 ,err_flg8 ,err_flg9 ,err_flg10 ,err_flg11 ,err_flg12 ,err_flg13 ,err_flg14 ,err_flg15 ,err_flg16 ,err_flg17 ,err_flg18 ,err_flg19 ,err_flg20 ,kjyo_ym ,tksnbk_kbn ,fcl_exec_kbn ,rec_sts_kbn ,ins_dt ,ins_usr ,dwh_upd_dt ) SELECT src05.convert_empty_to_null(t.rec_data) ,src05.convert_empty_to_null(t.rec_whs_cd) ,src05.convert_empty_to_null(t.rec_whs_sub_cd) ,src05.convert_empty_to_null(t.rec_whs_org_cd) ,src05.convert_empty_to_null(t.rec_cust_cd) ,src05.convert_empty_to_null(t.rec_comm_cd) ,src05.convert_empty_to_null(t.rec_tran_kbn) ,src05.convert_empty_to_null(t.rev_hsdnymd_wrk) ,src05.convert_empty_to_null(t.rev_hsdnymd_srk) ,src05.convert_empty_to_null(t.rec_urag_num) ,src05.convert_empty_to_null(t.rec_comm_name) ,src05.convert_empty_to_null(t.rec_nonyu_fcl_name) ,src05.convert_empty_to_null(t.rec_nonyu_fcl_addr) ,src05.convert_empty_to_null(t.rec_lot_num1) ,src05.convert_empty_to_null(t.rec_qty1) ,src05.convert_empty_to_null(t.rec_lot_num2) ,src05.convert_empty_to_null(t.rec_qty2) ,src05.convert_empty_to_null(t.rec_lot_num3) ,src05.convert_empty_to_null(t.rec_qty3) ,src05.convert_empty_to_null(t.rec_ymd) ,src05.convert_empty_to_null(t.sale_data_cat) ,src05.convert_empty_to_null(t.slip_file_name) ,src05.convert_empty_to_null(t.slip_mgt_num) ,t.row_num ,src05.convert_empty_to_null(t.hsdn_ymd) ,src05.convert_empty_to_null(t.exec_dt) ,t.v_tran_cd ,src05.convert_empty_to_null(t.tran_kbn_name) ,src05.convert_empty_to_null(t.whs_org_cd) ,t.v_whsorg_cd ,src05.convert_empty_to_null(t.whs_org_name) ,src05.convert_empty_to_null(t.whs_org_kn) ,t.v_whs_cd ,src05.convert_empty_to_null(t.whs_name) ,src05.convert_empty_to_null(t.nonyu_fcl_cd) ,nullif(t.v_inst_cd,'') ,nullif(t.v_inst_name,'') ,nullif(t.v_inst_kn,'') ,nullif(t.v_inst_addr,'') ,nullif(t.comm_cd,'') ,nullif(t.product_name,'') ,nullif(t.htdnymd_err_kbn,'') ,nullif(t.prd_exis_kbn,'') ,nullif(t.fcl_exis_kbn,'') ,t.qty1 ,t.qty2 ,t.qty3 ,t.slip_org_kbn ,src05.convert_empty_to_null(t.bef_slip_mgt_num) ,src05.convert_empty_to_null(t.whs_rep_comm_name) ,src05.convert_empty_to_null(t.whs_rep_nonyu_fcl_name) ,src05.convert_empty_to_null(t.whs_rep_nonyu_fcl_addr) ,src05.convert_empty_to_null(t.err_flg1) ,src05.convert_empty_to_null(t.err_flg2) ,src05.convert_empty_to_null(t.err_flg3) ,src05.convert_empty_to_null(t.err_flg4) ,src05.convert_empty_to_null(t.err_flg5) ,src05.convert_empty_to_null(t.err_flg6) ,src05.convert_empty_to_null(t.err_flg7) ,src05.convert_empty_to_null(t.err_flg8) ,src05.convert_empty_to_null(t.err_flg9) ,src05.convert_empty_to_null(t.err_flg10) ,src05.convert_empty_to_null(t.err_flg11) ,src05.convert_empty_to_null(t.err_flg12) ,src05.convert_empty_to_null(t.err_flg13) ,src05.convert_empty_to_null(t.err_flg14) ,src05.convert_empty_to_null(t.err_flg15) ,src05.convert_empty_to_null(t.err_flg16) ,src05.convert_empty_to_null(t.err_flg17) ,src05.convert_empty_to_null(t.err_flg18) ,src05.convert_empty_to_null(t.err_flg19) ,src05.convert_empty_to_null(t.err_flg20) ,src05.convert_empty_to_null(t.kjyo_ym) ,src05.convert_empty_to_null(t.tksnbk_kbn) ,src05.convert_empty_to_null(t.fcl_exec_kbn) ,src05.convert_empty_to_null(t.rec_sts_kbn) ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,src05.convert_empty_to_null(t.ins_usr) ,SYSDATE() FROM org05.bio_sales AS t ON DUPLICATE KEY UPDATE rec_data=VALUES(rec_data) ,rec_whs_cd=VALUES(rec_whs_cd) ,rec_whs_sub_cd=VALUES(rec_whs_sub_cd) ,rec_whs_org_cd=VALUES(rec_whs_org_cd) ,rec_cust_cd=VALUES(rec_cust_cd) ,rec_comm_cd=VALUES(rec_comm_cd) ,rec_tran_kbn=VALUES(rec_tran_kbn) ,rev_hsdnymd_wrk=VALUES(rev_hsdnymd_wrk) ,rev_hsdnymd_srk=VALUES(rev_hsdnymd_srk) ,rec_urag_num=VALUES(rec_urag_num) ,rec_comm_name=VALUES(rec_comm_name) ,rec_nonyu_fcl_name=VALUES(rec_nonyu_fcl_name) ,rec_nonyu_fcl_addr=VALUES(rec_nonyu_fcl_addr) ,rec_lot_num1=VALUES(rec_lot_num1) ,rec_qty1=VALUES(rec_qty1) ,rec_lot_num2=VALUES(rec_lot_num2) ,rec_qty2=VALUES(rec_qty2) ,rec_lot_num3=VALUES(rec_lot_num3) ,rec_qty3=VALUES(rec_qty3) ,rec_ymd=VALUES(rec_ymd) ,sale_data_cat=VALUES(sale_data_cat) ,slip_file_name=VALUES(slip_file_name) ,slip_mgt_num=VALUES(slip_mgt_num) ,row_num=VALUES(row_num) ,hsdn_ymd=VALUES(hsdn_ymd) ,exec_dt=VALUES(exec_dt) ,v_tran_cd=VALUES(v_tran_cd) ,tran_kbn_name=VALUES(tran_kbn_name) ,whs_org_cd=VALUES(whs_org_cd) ,v_whsorg_cd=VALUES(v_whsorg_cd) ,whs_org_name=VALUES(whs_org_name) ,whs_org_kn=VALUES(whs_org_kn) ,v_whs_cd=VALUES(v_whs_cd) ,whs_name=VALUES(whs_name) ,nonyu_fcl_cd=VALUES(nonyu_fcl_cd) ,v_inst_cd=VALUES(v_inst_cd) ,v_inst_name=VALUES(v_inst_name) ,v_inst_kn=VALUES(v_inst_kn) ,v_inst_addr=VALUES(v_inst_addr) ,comm_cd=VALUES(comm_cd) ,product_name=VALUES(product_name) ,htdnymd_err_kbn=VALUES(htdnymd_err_kbn) ,prd_exis_kbn=VALUES(prd_exis_kbn) ,fcl_exis_kbn=VALUES(fcl_exis_kbn) ,qty1=VALUES(qty1) ,qty2=VALUES(qty2) ,qty3=VALUES(qty3) ,slip_org_kbn=VALUES(slip_org_kbn) ,bef_slip_mgt_num=VALUES(bef_slip_mgt_num) ,whs_rep_comm_name=VALUES(whs_rep_comm_name) ,whs_rep_nonyu_fcl_name=VALUES(whs_rep_nonyu_fcl_name) ,whs_rep_nonyu_fcl_addr=VALUES(whs_rep_nonyu_fcl_addr) ,err_flg1=VALUES(err_flg1) ,err_flg2=VALUES(err_flg2) ,err_flg3=VALUES(err_flg3) ,err_flg4=VALUES(err_flg4) ,err_flg5=VALUES(err_flg5) ,err_flg6=VALUES(err_flg6) ,err_flg7=VALUES(err_flg7) ,err_flg8=VALUES(err_flg8) ,err_flg9=VALUES(err_flg9) ,err_flg10=VALUES(err_flg10) ,err_flg11=VALUES(err_flg11) ,err_flg12=VALUES(err_flg12) ,err_flg13=VALUES(err_flg13) ,err_flg14=VALUES(err_flg14) ,err_flg15=VALUES(err_flg15) ,err_flg16=VALUES(err_flg16) ,err_flg17=VALUES(err_flg17) ,err_flg18=VALUES(err_flg18) ,err_flg19=VALUES(err_flg19) ,err_flg20=VALUES(err_flg20) ,kjyo_ym=VALUES(kjyo_ym) ,tksnbk_kbn=VALUES(tksnbk_kbn) ,fcl_exec_kbn=VALUES(fcl_exec_kbn) ,rec_sts_kbn=VALUES(rec_sts_kbn) ,ins_dt=VALUES(ins_dt) ,ins_usr=VALUES(ins_usr) ,dwh_upd_dt=SYSDATE() ; """) }, # ロットマスタデータ CONDKEY_LOT_NUM_MST: { _KEY_DATA_NAME: "ロットマスタデータ", _KEY_FILE_PREFIX: "lot_num_mst_", _KEY_FILE_SUFFIX: ".gz", _KEY_FILE_COLUMN_SEPARATORS: "5", _KEY_ORG_TABLE: "org05.lot_num_mst", _KEY_SRC_TABLE: "src05.lot_num_mst", _KEY_UPSERT_SQL: textwrap.dedent("""\ INSERT INTO src05.lot_num_mst ( ser_num ,lot_num ,expr_dt ,frst_mov_dt ,ins_dt ,ins_usr ,dwh_upd_dt ) SELECT t.ser_num ,t.lot_num ,t.expr_dt ,t.frst_mov_dt ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,t.ins_usr ,SYSDATE() FROM org05.lot_num_mst AS t ON DUPLICATE KEY UPDATE ser_num=t.ser_num ,lot_num=t.lot_num ,expr_dt=t.expr_dt ,frst_mov_dt=t.frst_mov_dt ,ins_dt=nullif(t.ins_dt, 0) ,ins_usr=t.ins_usr ,dwh_upd_dt=SYSDATE() ; """) }, } def _get_interface_property(self, condkey: str, property_name: str) -> str: ret = None if condkey in self._VJSK_INTERFACE_MAPPING: ret = self._VJSK_INTERFACE_MAPPING.get(condkey).get(property_name) return ret def get_data_name(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、ファイル論理名を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_DATA_NAME) def get_file_prefix(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、ファイル名接頭辞を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_FILE_PREFIX) def get_file_suffix(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、ファイル拡張子を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_FILE_SUFFIX) def get_file_column_separators(self, condkey: str) -> int: """ 概要 受領ファイルI/Fが想定する、1行あたりのタブ文字数を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return int(self._get_interface_property(condkey, self._KEY_FILE_COLUMN_SEPARATORS)) def get_org_table(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、LOAD先ロードスキーマテーブル名を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_ORG_TABLE) def get_src_table(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、登録先蓄積スキーマテーブル名を取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_SRC_TABLE) def get_upsert_sql(self, condkey: str) -> str: """ 概要 受領ファイルI/Fが想定する、upsert (ロードスキーマ→蓄積スキーマ) CMLステートメントを取得する 引数 condkey: 受領データの種類を一意に示す値(このクラスのメンバ CONDKEY_* の値) """ return self._get_interface_property(condkey, self._KEY_UPSERT_SQL) def get_condkey_by_s3_file_path(self, s3_file_path: str) -> str: """ 概要 S3受領バケットに受領したファイル名から、I/F想定に該当する condkey 値を取得する 引数 s3_file_path: S3受領バケットにある受領したファイルパス """ ret = None filename = s3_file_path[s3_file_path.rfind("/") + 1:] for condkey in self._VJSK_INTERFACE_MAPPING: element = self._VJSK_INTERFACE_MAPPING.get(condkey) if filename.startswith(element.get(self._KEY_FILE_PREFIX)) \ and filename.endswith(element.get(self._KEY_FILE_SUFFIX)): ret = condkey break return ret