Saturday, 25 October 2025

 

 Understanding the Chart of Accounts (COA): The Financial Backbone of Every Organization

 Introduction

In every organization, whether it’s a small business or a global enterprise, accounting forms the heart of financial management. To keep that heart beating in rhythm, companies rely on a well-defined Chart of Accounts (COA) a structured framework that organises financial data into meaningful segments.

A Chart of Accounts is more than just a list of accounts; it’s the foundation of all accounting activities, determining how each transaction is identified, recorded, and reported.


 What is a Chart of Accounts?

The Chart of Accounts (COA) represents the complete accounting structure of an organization. It defines how transactions are classified into different accounts, departments, and business dimensions.

In simple terms, think of the COA as a blueprint that tells your accounting system where to record every rupee spent or earned.

Each organization customizes its COA based on its reporting requirements, operational structure, and business objectives.


 Purpose of the Chart of Accounts

A well-designed COA serves several critical purposes:

  1. Accurate Transaction Posting
    Ensures every financial transaction is recorded in the correct account.

  2. Consistent Financial Reporting
    Provides a standardized format for generating financial statements like the Balance Sheet and Profit & Loss Account.

  3. Organizational Analysis
    Enables reporting and analysis by company, branch, department, or product.

  4. Transparency and Control
    Helps auditors and management trace financial activity easily and maintain control.


Structure of the COA

A COA is made up of several segments, also known as accounting flexfield segments in Oracle E-Business Suite.
Each segment represents a key dimension of the organization’s financial data.

Example Segments:

SegmentDescriptionExample Values
Legal EntityIdentifies the company or divisionPetro (01), Retail (02), RNRL (03)
UnitRepresents the business location or branchHYD (001), BLR (002), MUM (003)
AccountDefines the type of accountCash A/C (00001), Rent A/C (00002), Sales A/C (00003), Loan A/C (00004)
ProductRepresents the product or service categoryDefault (000)
SpareReserved for future expansion

 Example: How COA Works in Practice

Let’s look at an example of a code combination used to post transactions:

01.001.00001

Breakdown:

  • 01 → Legal Entity (Petro)

  • 001 → Unit (Hyderabad)

  • 00001 → Account (Cash A/C)

This unique string — called a Code Combination or Flexfield Combination — tells the system exactly where to record a transaction in the General Ledger.

For instance, when the Hyderabad branch of Petro receives cash, the transaction will be posted to 01.001.00001.


Designing a Good Chart of Accounts

Designing a COA is both an art and a science. It must strike the perfect balance between simplicity, flexibility, and comprehensiveness.

Here are key design principles:

  1. Simplicity: Avoid unnecessary complexity. Keep the structure easy to understand.

  2. Flexibility: Plan for growth — allow future addition of segments or values.

  3. Consistency: Maintain uniform coding and naming standards.

  4. Reporting Needs: Design based on the organization’s management and statutory reporting requirements.

A poorly structured COA can cause major issues later — from duplicate accounts to confusing financial reports.


Why COA Matters

A thoughtfully designed Chart of Accounts helps organizations:

  • Streamline accounting processes

  • Improve financial accuracy

  • Simplify audits and reconciliations

  • Enable better business insights and decision-making

In ERP systems like Oracle E-Business Suite, SAP, or Oracle Cloud ERP, the COA is the core foundation for modules like General Ledger, Accounts Payable, Accounts Receivable, and Assets.


 Conclusion

The Chart of Accounts isn’t just a technical setup — it’s a strategic financial tool.
A clear, well-organized COA provides visibility, control, and structure to every aspect of an organization’s finances.

When designed correctly, it becomes the language of business — translating every transaction into meaningful financial information that drives smart decisions.


 Example Summary (From Image Reference)

Segments Used:

  • Legal Entity → 01 (Petro)

  • Unit → 001 (HYD)

  • Account → 00001 (Cash A/C)

  • Product → 000 (Default)

Final Code Combination:
01.001.00001Petro Hyderabad Cash Account

                                                        Chart Of Accounts 



Chart of Accounts Components



Thursday, 16 October 2025

                                                    Currency Creation


1. What is Currency?

  • Currency represents the monetary unit used to measure and record financial transactions.
  • Every country has its own official currency, such as:
    • 🇮🇳 INR — Indian Rupee
    • 🇺🇸 USD — US Dollar
    • 🇬🇧 GBP — British Pound

In Oracle Financials, currencies play a key role in recording, reporting, and converting business transactions across different countries.

 

2. Types of Currency in Oracle

Oracle classifies currency into two main categories:

  1. Monetary Currency
  2. Non-Monetary Currency

 

2.1 Monetary Currency

  • Monetary currency is used to record the actual monetary value of day-to-day business transactions.
  • Examples: INR, USD, GBP, EUR, etc.

There are two subtypes of Monetary Currency in Oracle:

a. Functional Currency

  • This is the primary currency of the Ledger.
  • All accounting records, financial statements, and reports are maintained in this currency.
  • Examples:
    • For a company in India → Functional currency is INR.
    • For a company in USA → Functional currency is USD.

Think of Functional Currency as your “base currency” for all financial activities in that ledger.

 b. Foreign Currency

  • Any currency other than the Functional Currency is called a Foreign Currency.
  • It is used when business transactions occur in a currency different from your ledger currency.
  • Examples:
    • For an Indian company (Functional = INR), USD is a foreign currency.
    • For a US company (Functional = USD), INR is a foreign currency.

 Oracle uses conversion rates to convert foreign currency transactions into functional currency for reporting and accounting.

 

2.2 Non-Monetary Currency

  • Non-monetary currency is also called STAT Currency (Statistical Currency).
  • It is not used for financial amounts, but rather for statistical information or calculations.
  • It helps in performance analysis, ratios, and reporting.
  • Examples:
    • Ratios
    • Headcounts
    • Percentages
    • Meters, Units, etc.

Non-monetary currencies do not affect ledger balances, but are useful for additional reporting and KPIs.

 

3. Oracle Navigation to Define Currency

To define and manage currencies in Oracle Fusion Applications:

  1. Navigator
  2. Setup & Maintenance
  3. TasksManage Implementation Projects
  4. Click on your Implementation Project Name
  5. Go to Financials
  6. Define Common Application Configuration for Financials
  7. Define Enterprise Structures for Financials
  8. Define Financial Reporting Structures
  9. Define CurrenciesManage Currencies
  10. Click on Go to Task
  11. Click on the “+” icon to add a new currency

Here, you can:

  • Define new currencies (if needed)
  • Enable/disable currencies
  • Set precision, rounding rules, and effective dates
  • Manage conversion rates
STEP-1


STEP-2
STEP-3
STEP-4


STEP-5
STEP-6

STEP-7


STEP-8
STEP-9


STEP-10



STEP-11



Friday, 10 October 2025

                             Fusion General Ledger Introduction


1. What is GL in Oracle Fusion Cloud Finance?

GL = General Ledger

The General Ledger (GL) is the central accounting hub of Oracle Fusion Cloud Financials. It is where all financial transactions from different modules (such as Payables, Receivables, Assets, and Cash Management) are recorded, summarised, and reported.


Key Functions of GL

  1. Record Transactions
    • All journal entries from sub-ledgers (AP, AR, FA, etc.) flow into the GL.
    • You can also create manual journals directly in GL.
  2. Financial Reporting
  3. Chart of Accounts (CoA)
    • GL uses a structured Chart of Accounts to classify and record transactions by segment (for example: Company, Cost Centre, Account, Department).
  4. Accounting Periods
    • GL manages open and closed periods to control when transactions can be posted.
    • This ensures accounting integrity and compliance.
  5. Integration Hub
    • GL acts as a central point where all subledger modules integrate.
    • It ensures consistency across financial data.
  6. Multi-currency and Multi-ledger Support
    •  
    • Fusion GL can handle multiple currencies, legal entities, and ledgers, making it suitable for global organisations.




















Wednesday, 27 August 2025

Database Credentials in Oracle Wallet

 

 Database Credentials in Oracle Wallet

When managing Oracle Databases, storing user credentials in plain text inside scripts is a major security risk. Oracle provides a secure solution with Oracle Wallet, which allows you to store database credentials in an encrypted location. Once configured, applications and utilities like Data Pump or JDBC can connect without requiring a clear-text password.

This blog walks through the step-by-step procedure to store database credentials in Oracle Wallet and use it securely.


Overview

The Oracle Wallet securely stores database credentials, eliminating the need to expose passwords in scripts.

  • Multiple credentials can be stored in a single wallet.

  • Supports auto-login, meaning applications don’t need a password to access it.

  • OS file permissions ensure security.

In this example, a non-Oracle binary owner OS user (bidhan) is used to create the wallet.

Example usage:

Data Pump with Wallet

nohup expdp /@BSA1EP directory=DUMP_DIR dumpfile=scott_%U.dmp logfile=EXP_SCOTT.log schemas=scott parallel=4 &

JDBC with Wallet

Connection conn = DriverManager.getConnection("jdbc:oracle:oci:/@BSA1EP");

Step 1: Create Oracle Wallet Directory

Check wallet status:

SET LINES 180 COL wrl_type FORMAT a12 COL wrl_parameter FORMAT a35 COL status FORMAT a30 SELECT * FROM v$encryption_wallet;

If not present, create directory:

[root@dg1 ~]# mkdir -p /u01/admin/BSA1EP/wallet [root@dg1 ~]# chown -R bidhan:bidhan /u01/admin/BSA1EP/wallet

Step 2: Create TNS ADMIN Directory (for bidhan)

[root@dg1 ~]# mkdir -p /u01/admin/BSA1EP/wallet/TNS_ADMIN [root@dg1 ~]# chown -R bidhan:bidhan /u01/admin/BSA1EP/wallet/TNS_ADMIN

Step 3: Add TNS Entry (for oracle)

Update sqlnet.ora and tnsnames.ora:

sqlnet.ora

SQLNET.WALLET_OVERRIDE = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE)(METHOD_DATA = (DIRECTORY = /u01/admin/BSA1EP/wallet)))

tnsnames.ora

BSA1EP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dg1.bidhan.com)(PORT = 1622)) ) (CONNECT_DATA = (SERVICE_NAME = BSA1EP) ) )

Step 4: Export Oracle Variables

For OS user bidhan:

export ORACLE_SID=BSA1EP export ORACLE_HOME=/oracle/1900 export PATH=$ORACLE_HOME/bin:$PATH export TNS_ADMIN=/u01/admin/BSA1EP/wallet/TNS_ADMIN

Step 5: Create Password-Protected Oracle Wallet

[bidhan@dg1 wallet]$ orapki wallet create -wallet /u01/admin/BSA1EP/wallet -auto_login

After success, check files:

ls -ltr /u01/admin/BSA1EP/wallet cwallet.sso ewallet.p12

Step 6: Add Database Credentials to Wallet

[bidhan@dg1 ~]$ mkstore -wrl /u01/admin/BSA1EP/wallet -createCredential BSA1EP test Enter your secret/Password: ***** Re-enter your secret/Password: ***** Enter wallet password: *****

Step 7: Verify Database Connection

[bidhan@dg1 ~]$ sqlplus /@BSA1EP SQL> show user USER is "TEST"

Step 8: List Credentials in Wallet

mkstore -wrl /u01/admin/BSA1EP/wallet -listCredential

Output:

1: BSA1EP test

Step 9: Modify Credentials in Wallet

After DB password change:

mkstore -wrl /u01/admin/BSA1EP/wallet -modifyCredential BSA1EP test newpassword

Step 10: View Wallet Contents

orapki wallet display -wallet /u01/admin/BSA1EP/wallet

Step 11: Change Wallet Password

orapki wallet change_pwd -wallet /u01/admin/BSA1EP/wallet

Step 12: Delete Credentials from Wallet

mkstore -wrl /u01/admin/BSA1EP/wallet -deleteCredential BSA1EP

Step 13: Delete Oracle Wallet

Remove wallet files:

rm -f /u01/admin/BSA1EP/wallet/*wallet*

Key Takeaways

  • Oracle Wallet eliminates password exposure in scripts.

  • Supports auto-login for seamless integration.

  • Credentials can be securely added, updated, listed, or deleted.

  • Works perfectly with Data Pump, RMAN, JDBC, and batch jobs.

Sunday, 24 August 2025

Oracle 19c Active Data Guard Switchover Procedure

 

Oracle 19c Active Data Guard Switchover Procedure

Oracle Active Data Guard provides high availability and disaster recovery by allowing seamless role transitions between the primary and standby databases. A switchover is a planned role reversal where the primary database becomes the standby, and the standby takes over as the new primary without data loss.

This guide covers the step-by-step procedure for switchover in Oracle 19c Active Data Guard.


1. Pre-Checks

Before initiating a switchover, ensure both databases are synchronized and healthy.

On both primary and standby:

SELECT DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;
  • Primary should show: PRIMARY, READ WRITE

  • Standby should show: PHYSICAL STANDBY, READ ONLY WITH APPLY or MOUNTED

Also, confirm there are no active sessions or long-running transactions on the primary.


2. Verify Log Transport and Apply

Ensure redo logs are being shipped and applied correctly.

On Primary:

SELECT DEST_ID, STATUS, ERROR FROM V$ARCHIVE_DEST;

On Standby:

SELECT PROCESS, STATUS, THREAD#, SEQUENCE# FROM V$MANAGED_STANDBY;
  • ARCH and LGWR processes should be running on primary.

  • MRP (Managed Recovery Process) should be running on standby.


3. Prepare Standby (Optional)

If standby is running in read-only with apply, cancel recovery before switchover:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

4. Switchover Command (Primary)

On the Primary Database:

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; SHUTDOWN IMMEDIATE; STARTUP MOUNT;

The database is now in standby mode.


5. Activate New Primary (Standby)

On the Standby Database:

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; ALTER DATABASE OPEN;

The standby is now promoted to the new primary database.


6. Convert Former Primary to Standby

On the Former Primary (now mounted as standby):

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

This re-establishes redo apply.


7. Verify New Roles

On both databases:

SELECT DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

Expected Results:

  • New Primary → PRIMARY, READ WRITE

  • New Standby → PHYSICAL STANDBY, MOUNTED or READ ONLY WITH APPLY


8. Post-Checks

Validate the overall Data Guard configuration.

Using Data Guard Broker (DGMGRL):

DGMGRL> SHOW CONFIGURATION;

If Data Guard Broker is configured, switchover is much simpler:

DGMGRL> CONNECT sys/password@primary; DGMGRL> SWITCHOVER TO 'standby_db_unique_name'; DGMGRL> SHOW CONFIGURATION;

Conclusion

A switchover in Oracle 19c Active Data Guard ensures a zero data loss, planned role reversal between primary and standby databases. This is typically done during planned maintenance, patching, or to test disaster recovery readiness.