exch_rate
1. Description
The exch_rate program processes currency exchange rate data by reading input parameters, formatting the data, and generating output for further usage. It also loads the data into Database.
2. Input
2.1 Mandatory Parameters
# | Parameters | Description | Example |
---|---|---|---|
1 | process_config | Path to the process configuration file that needs to be processed | /path/to/process_config.json |
2 | connection_string | Connection credentials to connect to the database | Click-here |
3 | as_on_date | The date for which the program should run | 2024-11-28 |
4 | src_local_ccy | The source currency to be converted | INR |
5 | display_local_ccy | The local currency used for displaying exchange rate information | RUP |
6 | foreign_ccy | The foreign currency for conversion | USD |
7 | log_file_path | Path to write general processing logs | test-bed/log.txt |
8 | diagnostics_file_path | Path to write diagnostics logs for performance and error tracking | test-bed/diag_log.txt |
2.2 Non-Mandatory Parameters
# | Parameters | Description | Default Value | Example |
---|---|---|---|---|
1 | log_level | Level of diagnostics written to the log file | none | info |
2 | diagnostics_flag | Flag to decide if performance diagnostics will be logged | false | true or false |
2.2 Input.txt
SOURCE|TARGET|EX-RATE
USD|INR|83
EUR|INR|20
SGC|INR|120
JPY|INR|67
INR|INR|1
SGD|INR|20
SGE|INR|12
3.3 Connection String
Connection strings for different Databases are given below:
3.3.1 MSSQL
"{
"db": "MSSQL",
"schema": "dbo",
"username": "sa",
"password": "Surya@123",
"server": "localhost",
"dbname": "TestDB",
"options": {
"t": "1"
}
}"
3.3.2 Oracle
{
"db": "ORACLE",
"schema": "BALM_BOC",
"username": "BALM_BOC",
"password": "Surya123",
"server": "192.168.66.193:1521/orcl"
}
3.3.3 Postgres
"{
"db": "POSTGRES",
"schema": "public",
"username": "postgres",
"password": "surya123",
"server": "localhost",
"dbname": "postgres",
"options": {
"t": "1"
}
}"
4. Output
A text file will be generated in the given output path in the following format and the data will also be loaded into the table in the database. the output is of this format for each convert rate in input.txt:
Source|Target|Ex-Rate|as-on-date|Y|dataharmonizer|curr_date|dataharmonizer|curr_date
Target|Source|1/Ex-Rate|as-on-date|Y|dataharmonizer|curr_date|dataharmonizer|curr_date
After iterating through all lines of input.txt, it will add for src_local_ccy and display_local_currency, src_local_ccy and foreign_ccy in the same way.
4.1 Output.txt
USD|INR|83|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|USD|0.012048192771084338|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
EUR|INR|20|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|EUR|0.05|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
SGC|INR|120|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|SGC|0.008333333333333333|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
JPY|INR|67|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|JPY|0.014925373134328358|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
SGD|INR|20|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|SGD|0.05|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
SGE|INR|12|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|SGE|0.08333333333333333|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|RUP|1|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
RUP|INR|1|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|FCY|1|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
FCY|INR|1|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024
INR|INR|1.0|30-06-2024|Y|dataharmonizer|28-11-2024|dataharmonizer|28-11-2024