Mis
1. Description
Mis program reads cf file and aggregates the amount based on dim_type(NUMSLAB/PRDSLAB/SRCMAP) and loads the data to the DB.
2. Program location
<installation_path>/mis
3. Input
Click ⬇️ to download the sample data.
3.1 Mandatory Parameters
# | Parameters | Description | Example |
---|---|---|---|
1 | as_on_date | The date for which the program has to run | 26-09-2023 |
2 | process-config | Path to process config file that needs to be processed | configs/process.json |
3 | connection-string | Connection credentials to connect to the database | Oracle (Username |
4 | home-currency | The home currency | INR |
5 | display-currency | The display currency | USD |
6 | log-file | Path to write logs | logs/application.log |
7 | diagnostics-log-file | Path to write diagnostics logs | logs/diagnostics.log |
3.2 Non Mandatory Parameters
# | Parameters | Description | Default value | Example |
---|---|---|---|---|
1 | log-level | Level of diagnostics written to the log file | info | none |
2 | diagnostics-flag | Flag to enable/disable performance diagnostics in the diagnostics log file | true | false |
3.3 Process config file 🔗
This file contains:
# | File | Description | Example |
---|---|---|---|
1 | input_metadata | Path to input_metadata file. | test-bed/M_OP001.json |
2 | additional_input | Path to additonal files required by the program. | test-bed/M_IN003.json. |
3 | output_metadata | Path to output_metadata file. | test-bed/M_OP001.json |
Required field file
# | Parameters | Description | Example |
---|---|---|---|
1 | input_file_Id | Id of the input file | M_IN001 |
2 | nwd_codes_file_id | Id of the NWD codes file | nwd_codes_file_path |
3 | acc_skip_rules_id | Id of the account skip rules file | acc_skip_rules_path |
4 | dim_files | Pipe-separated list to find dim_files_path | dim_files_path |
5 | dim_types | Pipe-separated list of dimension types | NUMSLAB/SRCMAP/PRDSLAB |
6 | dim_fields_store | comma-separated inside pipe-separated list to get dim_fields | dim_fields |
7 | is_wd | Flag used in deciding to skip the account or not | true/false |
8 | process_field | Key to get process field for each account | process_field |
9 | amt | Amount field | amount |
10 | int_rt | Interest rate field | interest_rate |
1 | ccy | Currency field | currency |
12 | acc_lvl_exch_rate | Account-level exchange rate | account_level_exchange_rate |
13 | is_consolidated | Flag for consolidation requirement | true/false |
14 | is_numslab_consol_required | Flag for numeric slab consolidation requirement | true/false |
15 | is_negative | Flag indicating whether negative values are allowed | true/false |
16 | acc_open_dt_field | Account opening date field | account_open_date |
4. Output
4.1 Output file-1 : Aggregated Output
It will be uploaded in MISDimRptData table.
Each line will be of the format:
report_id|as_on_date|aggr_key|tot_prin_amt|tot_prin_amt_lcy|rt_prin_amt_weighted|Y|ADMIN|as_on_date|ADMIN|as_on_date|
aggr_key has two fields:
dims|ccy|
4.2 Output file-2 : Health report
The health check report gives summary about the processed accounts such as success counts, failed counts, etc.🔗
Output derivation logic:
Derivation logic for each account in each file is as follows: Case 1: if is_consolidated is true
tot_prin_amt: The total principal amount is assigned the value of conv_amt (the amount in the converted currency).
tot_prin_amt_lcy: The total principal amount in the local currency is assigned the value of amt (the amount in the original currency).
rt_prin_amt_weighted: The weighted principal amount is calculated by multiplying the interest rate with amt (the original amount in local currency).
Case 2: if is_consolidated is false
tot_prin_amt: The total principal amount is assigned the value of amt (the amount in the original currency).
tot_prin_amt_lcy: The total principal amount in the local currency is assigned the value of conv_amt (the amount in the converted currency).
rt_prin_amt_weighted: The weighted principal amount is calculated by multiplying the interest rate with conv_amt (the amount in the converted currency).
5. Process configuration in streamdef table:
{
"streamName": "Investments",
"streamId": "1148",
"flows": [
{
"flowId": "1",
"name": "investments",
"flowDependencies": [],
"executorID": "1",
"process": [
{
"processId": "1",
"processName": "investments_mis_2",
"processBinary": "{E_1_SH_PROGRAMS}\\mis_2",
"processArguments": [
"--as-on-date",
"{AsOnDate}",
"--process-config",
"{M_PC095}",
"--connection-string",
"{DB_CONNECTION}",
"--home-currency",
"{HomeCurrency}",
"--display-currency",
"{DisplayCurrency}",
"--log-file",
"{E_1_SH_LOGS}\\{B_1_SH_LOGS}\\log_investments_mis_aggr.txt",
"--diagnostics-log-file",
"{E_1_SH_LOGS}\\{B_1_SH_LOGS}\\daig_log_investments_mis_aggr.txt",
"--log-level",
"info",
"--diagnostics-flag",
"false"
],
"processDependencies": [],
"processReport": "{E_1_SH_SUMMARYDATA}\\{B_1_SH_SUMMARYDATA}\\mis_aggr_Investments-summary-health-check-report.json",
"processType": "mis_aggr",
"infoLog": "{E_1_SH_LOGS}\\{B_1_SH_LOGS}\\log_investments_mis_aggr.txt",
"errorLog": "{E_1_SH_LOGS}\\{B_1_SH_LOGS}\\daig_log_investments_mis_aggr.txt"
}
]
}
]
}