| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 
							- from pathlib import Path
 
- import subprocess
 
- cfg = {
 
-     "schema": "temp",
 
-     "scripts_dir": "E:\\GlobalCube\\Tasks\\scripts",
 
-     "query_dir": "E:\\GlobalCube\\System\\NAVISION\\SQL\\exec",
 
- }
 
- target_tables = {
 
-     "A": "IFT_Actuals",
 
-     "B": "IFT_Budget",
 
-     "C": "IFT_Commitment",
 
-     "K": "IFT_Controlling_Documents",
 
-     "P": "IFT_Plan",
 
- }
 
- def task(args):
 
-     return subprocess.Popen(args, stdout=subprocess.DEVNULL).wait()
 
- def ift_import(csv_file, target_table):
 
-     bulkcopy = str(Path(cfg["scripts_dir"]) / "bcp_import.bat")
 
-     sqlquery = str(Path(cfg["scripts_dir"]) / "sqlquery.bat")
 
-     sqlexec = str(Path(cfg["scripts_dir"]) / "sqlexec.bat")
 
-     query_file = target_table + ".sql"
 
-     task(f"{sqlquery} \"TRUNCATE TABLE [{cfg['schema']}].[{target_table}]\" ")
 
-     task(f"{bulkcopy} [{cfg['schema']}].[{target_table}] \"{csv_file}\" ")
 
-     task(f'{sqlexec} {query_file} "{csv_file}" ')
 
- def import_dir(base_dir=None):
 
-     if base_dir is None:
 
-         base_dir = "E:\\IFT\\staging"
 
-     for csv_file in Path(base_dir).glob("*.csv"):
 
-         print(csv_file.name)
 
-         if csv_file.name.count("_") == 2:
 
-             _, filetype, _ = csv_file.name.split("_")
 
-             ift_import(str(csv_file), target_tables[filetype])
 
-             csv_file.unlink()
 
- if __name__ == "__main__":
 
-     import_dir()
 
 
  |