Skip to main content

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

#ParametersDescriptionExample
1process_configPath to the process configuration file that needs to be processed/path/to/process_config.json
2connection_stringConnection credentials to connect to the databaseClick-here
3as_on_dateThe date for which the program should run2024-11-28
4src_local_ccyThe source currency to be convertedINR
5display_local_ccyThe local currency used for displaying exchange rate informationRUP
6foreign_ccyThe foreign currency for conversionUSD
7log_file_pathPath to write general processing logstest-bed/log.txt
8diagnostics_file_pathPath to write diagnostics logs for performance and error trackingtest-bed/diag_log.txt

2.2 Non-Mandatory Parameters

#ParametersDescriptionDefault ValueExample
1log_levelLevel of diagnostics written to the log filenoneinfo
2diagnostics_flagFlag to decide if performance diagnostics will be loggedfalsetrue 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