Import savings account data using XLS template
Import savings account data
Release | Release J |
Current Owners: |
|
Status (Draft, In Review, Stable / Approved): | In Review |
Contents:
Introduction
This feature allows to create new savings accounts through importing .xls fle.
Goals
Basic goals:
- Allow to import savings accounts data in .xls file based on provided template.
- Allow bulk creation of new account with imported .xls file.
Non-Goals
- Bulk edit of existing savings accounts
Definitions and Terminology
Term | Definitions |
---|---|
User | User of Mifos system with appropriate rights |
Customer | A group or client, recipent of savings account. |
XLS Template | A spreadsheet template use for importing accounts. |
Savings account | A account of type savings, opened for client or group. Account is instance of Savings product |
Savings product | A basic definition of available savings. |
XLS document | An instance of XLS template. |
User Stories
Priority | User Stories | Section in FR |
---|---|---|
1 | As an User, I want to be able to import XLS document with savings accounts, so that accounts |
|
Use Cases
User import savings accounts data
Actors
- User - a Mifos system user
Preconditions
- User is logged.
- User has permissions to import new savings data.
- User has permissions to create new savings accounts.
- User created XLS document using provided XLS template.
Basic Flow
- User go to Administration page ("Admin").
- User clicks on link "Import Savings"
- System open new page "Import Savings".
- User selects document with savings data (XLS Document) and uploads it to Mifos server.
- System parse uploaded document and shows to user how many rows were parsed successfully and which rows were not. Each row with errors has explanation.
- User clicks "Submit" button to save imported rows if any of them were parsed successfully.
- No rows were parsed successfully: see alternative flow: "No rows parsed successfully".
- System saves data and present a simple summary to user.
Post-conditions
- System displays page with short summary.
- All imported and parsed successfully rows are persisted in database.
Alternative Flows
No rows parsed successfully
- System displays 0 successfully parsed rows.
- "Submit" button is inactive.
- User corrects his XLS Document and clicks on button "Edit".
- System open page "Import Savings"
- User redoes import procedure from step 3 from basic flow.
Validations
Functional Requirements
FR# | Description | Comments/Mockups |
---|---|---|
1 | Savings import data is an Excel (97) file. |
|
2 | Excel file is checked against set of basic rules:
|
|
3 | Excel file is checked against Mifos' restrictions |
|
4 | For account without number a one should be generated by system. |
|
5 | Each row error message should contain row and cell number and error explanation. |
|
XLS Template Descritpion
First row of template contains name/description of a file. Second row contains column headers. Both rows are ignored by parser.
Actual data begins in the third row. Each row contains information for one savings account. Order of columns is important and cannot be changed.
Column name | Column description | Is Mandatory | Comment |
---|---|---|---|
Account Number | Contains a text representation of savings account global identification number. | No. | For empty column parser with create new account and generate number. If column is not empty parser will check for duplicates and create account with provided number. |
Customer Global ID | Contains a text representation of global identification for customer for which we create new account. Customer must exist in the system. | Yes. | Customer must be in state "Active". |
Product Name | Contains a name of savings product which will be used as a base for new savings account. Product must exist in the system. | Yes. | This is a full name of a product. Parser won't accept short name or product number. |
Status Name | Contains a text representation of account status. | Yes. | Allowed values are:
|
Cancel Flag Reason | Contains a text representation of reason for cancelling account. | Only if Status Name is set to "Cancelled" | Allowed values are:
|
Savings Amount | Contains a decimal representation of a savings (deposit) amount. | No. | When the field is blank value is taken from the product. |
Savings Balance | Contains a decimal representation of a savings balance. | No. | Shows the representations of the total savings funds |
Error messages
Here is a list of errors messages. Each message that applies to either specific column or row is preceded by row number and column number.
Error | Applies to | Description |
---|---|---|
Missing account number | Column: Account Number | Account number was expected, but application didn't found any in data file. |
Customer with global id # not found | Column: Customer Global ID | Provided customer global ID was not found in Mifos database. '#' is replaced with provided customer global ID. |
Missing product name | Column: Product Name | Product name was expected, but application didn't found any in data file. |
Active and applicable product with name # not found | Column: Product Name | System didn't find savings product definition with provided name that is active and applicable to provided customer. |
Cannot add new savings to inactive customer | Column: Customer Global ID | Provided customer is inactive, so no new savings accounts can be added. |
Missing account status name | Column: Status Name | Account status name was expected, but application didn't found any in data file. |
Savings status is incorrect; | Column: Status Name | Provided status name is not applicable to savings account. |
Missing reason for cancellation | Column: Cancel Flag Reason | Account status required status explanation flag, application didn't found any in data file. |
Wrong reason for cancelled account | Column: Cancel Flag Reason | Provided cancellation status is not applicable to this account. |
The amount is invalid because the number of digits before the decimal separator exceeds the allowed number of #. | Column: Savings Amount | Savings amount violates number of digits before decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
The amount is invalid because the number of digits after the decimal separator exceeds the allowed number of #. | Column: Savings Amount | Savings amount violates number of digits after decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
Standard Considerations
Security
Security (Permissions, Roles, and Data Scope) | Yes/No | Comments |
---|---|---|
Does the user need to be in a particular user hierarchy to use this feature? | No |
|
Does the office hierarchy affect use of this feature? | No |
|
Are you using any existing permissions to control this feature? | Yes | Permission to add new savings accounts |
Are you adding any new permissions or changing existing permission to control this feature? | Yes | Permission to import new savings accounts |
Are you using any existing activities to control this feature? | No |
|
Are you adding any new activities or changing existing activities to control this feature? | No |
|
Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | No. | Default values will be set to true. |
What will be the default values for default roles in a new installation? | -- | Default is true for admin role. |
Impacts to System
Impacts to System | Yes/No | Comments |
---|---|---|
Does this feature affect Bulk Loan Creation? How? | No |
|
Does this feature affect Collection Sheet Entry? How? | No |
|
Does this feature affect Redo Loans? | No |
|
Does this feature affect Reverse Loans? | No |
|
Is this feature affected by Holidays? | No |
|
Globalization/Localization
Globalization/Localization | Yes/No | Comments |
---|---|---|
Will this feature support users localizing data that they enter? | No |
|
Does this feature involve any date/time related data, and if so how should conversions be handled? | Yes |
|
Is there currency or other numeric data ? If so does it require any special handling or validation? Is there a need for mult-currency? (Loan Accounts) | Yes | All numeric data should be validated against Mifos' restrictions. |
Logging
Change Log
Change Log | Yes/No | Comments |
---|---|---|
Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? | Yes |
|
Does the administrator configuring the system need the ability to turn on or off logging for this feature? | No |
|
Is the feature currently logged but the structure of the logged records changing? | No |
|
Reporting
Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.
Reporting | Yes/No | Comments |
---|---|---|
Does the feature affect any existing reports? | No |
|
Does the feature require adding any new reports? | No |
|
Performance
Performance | Yes/No | Comments |
---|---|---|
Will the feature be a high use-case scenario? | No |
|
Will the feature have potential for high concurrency? | No |
|
Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base? | No |
|
Does the feature contain risks of database connection timeout? | Yes |
|
Will the feature contain any bulk insert/update/delete transactions? | Yes |
|
Will the feature contain any caching mechanisms or cache refreshing mechanisms? | No |
|
Could the feature result in a large amount of data being sent to the client or between the database and web server? | Yes |
|
Would users on a low bandwidth connection likely face issues with a part of this feature? | Depends on number of rows in file. |
|
Does the feature affect existing batch jobs or require adding any new batch jobs? | No |
|
Setup and Installation
New Installations
New Installations | Yes/No | Comments |
---|---|---|
Does this feature require both Mifos Business Intelligence Suite and Mifos Product? | No |
|
Does this feature require special work for hosting? (system admin) | No |
|
Backward Compatibility and Upgrades
Backward Compatibility and Upgrades | Yes/No | Comments |
---|---|---|
Is there any data conversion that needs to be done as part of an upgrade? | No. |
|
Will customers lose data or will the way existing data is stored change significantly? | No. |
|
Will another feature, workflow or portion of the data model be deprecated as a result of this new feature? | No. |
|
Will existing role permissions be changed or impacted by this feature? If so provide details in the security section. | No. |
|
Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature? | No. |
|
Hosting Support
Hosting Support | Yes/No | Comments |
---|---|---|
If different user groups are using the same database, are there concerns over the sharing of data related to the feature? | No |
|
Are there expected to be performance related issues with having many customers sharing the same hardware in support of this feature? | Yes | Depends on file size. |
Configuration
Configuration | Yes/No | Comments |
---|---|---|
Does this feature require changes to configuration files? | No. |
|
If so, is this feature enabled or disabled by default? | ---- |
|
Are existing configuration properties used to control this feature? If yes, which ones? | No. |
|
Are new configuration properties added for this feature? | No. |
|
Open Issues
Reviews and Approvals
- ...