Before going into any detail, let me take you into accounting world for a brief moment. Fundamentally accounting is based on two methods : Cash Basis or Accrual Basis.
Accrual Basis Accounting
Under the accrual basis accounting, revenues and expenses are recognized as follows:
AR:

  •  Revenue recognition: Revenue is recognized when both of the following conditions are met:
        a. Revenue is earned.
        b. Revenue is realized or realizable.
  •  Revenue is earned when products are delivered or services are provided.
  • Realized means cash is received.
  • Realizable means it is reasonable to expect that cash will be received in the future.

AP:

  • Expense recognition: Expense is recognized in the period in which related revenue is recognized (Matching Principle).

Cash Basis Accounting
Under the cash basis accounting, revenues and expenses are recognized as follows:
AR:

  • Revenue recognition: Revenue is recognized when cash is received.

AP:

  • Expense recognition: Expense is recognized when cash is paid.

 Timing differences in recognizing revenues and expenses:

  1. Accrued Revenue: Revenue is recognized before cash is received.
  2. Accrued Expense: Expense is recognized before cash is paid.
  3. Deferred Revenue: Revenue is recognized after cash is received.
  4. Deferred Expense: Expense is recognized after cash is paid.

                 Options in 11i                            To                                Options in 12
Till 11i the only way we represent this accounting method is by choosing accounting method in Payables Options in AP and System Options in AR. But in R12 you can see in that these options are gone from the system options of AP and AR. That is where subledger accounting comes in.
Part of the global release concept in R12, accounting methods have to be much more flexible and generation of accounting entries should be configurable.
As we know accounting is the end product of transctions and financial statements are end products of accounting. Also there is a need to seperate transaction from accounting. An accounting clerk who creates an invoice has nothing to do what accounting is behind that transaction. It is the duty of the management to decide accounting behind this transaction. 
Subledger Accounting is taking us in that direction.
Purpose of Subledger Accounting
The end product of Subledger Accounting Setups is a Subledger Accounting Method that can be assigned to one or more ledgers in GL. All accounting in different subledger applications is subject to the rules defined in this accounting method.
In 11i, as mentioned earlier, the only way to choose accounting method we chose is AR and AP system options setup (Cash Vs Accrual). We used start in GL setting up the Set of books and then define the organization information like Legal Entity and Operating units and so on. And then define these accounting methods for each operating unit. As you can see operations and accounting are so closely meshed with each other. But in R12 it is not the same. In this release it is now configurable in Subledger Accounting setups taking this away from system options of individual products.
Demystifying subledger accounting setups
Out of the box, Oracle seeds accounting rules for all applications. If you are satisfied with the Oracle’s seeded rules, there is no need to change any setup and you can use those existing rules (Accounting Method for Accrual is Standard Accrual and for Cash is Standard Cash). This screenshot here shows you the difference between the Accrual Basis of accounting and Cash Basis of Accounting. As you can see here, per rules, there is no accounting created when invoice is created under cash basis (no revenue is recognized until cash is received) but accounting is created when cash is realized. Invoice is accounted as soon it is completed under Accrual Method. This is configurable here where as in 11i we did not have a choice!.
If you choose this accounting method, accounting works exactly the way it works in previous releases.
Subledger Accounting as a gatekeeper of Reconciliation
       R11i Transfer to GL                                                                   R12 Transfer to GL
Starting R12 all accounting entries are generated and passed through subledger accounting application instead of directly going to GL. Hence reconciliation is already done between source to Subledger Accounting and Subledger Accounting to GL, reducing huge amount of time spent on reconciliation. Since these entries have to flow through the subledger accounting application, there is a need to map the source application accounting entries to subledger accounting. That is key for the setups.
Mapping a transaction to Subledger Accounting Setup
                                        AR Invoice Accounting
Let us take a simple example. Whenever you create an AR Invoice following accounting takes place. 
                             
                             Invoice Accounting in AR
Taking a step back and thinking through, this transaction is happening in AR for the Invoice Creation event….                                            
                                            Subledger Accounting Setup Model
Now we map the source (AR Invoices) to Subledger Accounting as shown here. So to conclude
Journal Line Types are nothing but accounting line types (Receivable or Revenue).
Event Classes identify a transaction type (Invoice Vs Credit Memo).
These two are assembled using Accounting Derivation Rules and Sources.
All these together make up Application Accounting Definition for Receivables.
Different Application Accounting Definitions together make up a Subledger Accounting Method.
This method can be attached to one or more Ledgers.

Period-End process is performed at the end of each period(depends on the organization). It is very important in any organization because if the period is not closed, the accounting for that period can not be closed, which will affect the financial results reporting of the respective period.
One can not close any module without following the order.

The suggested module wise sequence to be followed for Period-End process is as follows.

1. Projects
2. Payables
3. Purchasing
4. Assets 
5. Receivables
6. Inventory
7. General Ledger

General Ledger Accounting Cycle:
1. Open Period
2. Create/Reverse journal entries
3. Post Journals
4. Review
5. Revaluate/Translate
6. Consolidate
7. Review/correct balances
8. Run reports
9. Close the periods

Integration of General Ledger with other modules:

Oracle General Ledger integrates with other modules. Following is the list of modules along with the details that flow to the General Ledger.
1. Payables sends Invoices, payments, adjustments, realized gain/loss on foreign currency and invoice price variance to GL.

2. Receivables sends invoices, payments, adjustments, debit memos, credit memos, cash, charge backs and realized gain and loss on foreign currency to GL.

3. Assets sends capital and construction in process asset additions, cost adjustments, transfers, retirements, depreciation and reclassifications.

4. Purchasing sends accruals or receipts not invoiced, purchase orders, final closes and cancellations.

5. HRMS sends employee details.

6. Payroll sends salary, deductions and tax information.

7. Inventory sends cycle counts, physical inventory adjustments, receiving transactions, delivery transactions, delivery transactions, intercompany transfers, sales order issue, internal requisitions, sub-inventory transfers and Cost of Goods Sold.

Inter company Transactions are the transactions between two legal entities related to same Organization. Following are the setups need to be defined for Inter company Transactions.

Selling Operating Unit: Vision Japan
Shipping Operating Unit: Vision Operations

Step1: Define Transaction Type
Responsibility: Receivables Manager, Vision Operations
Navigation: Setup → Transactions → Transaction Type
Define New transaction type as shown below.
 
Step2: Assign Document Sequence to new Transaction Type (Defined in Step1) 
Responsibility: General Ledger Manager, Vision Operations
Navigation: Setup : Financials → Sequences → Document → Assign
Assign a document sequence to the transaction type ‘Intercompany’ as shown below.
 
Step3: Define Intercompany Transaction Flow and Intercompany Relations

Responsibility: Inventory Manager, Vision operations

Navigation: Setup → Organizations → Intercompany Transaction Flows
Define Intercompany Transaction flow and Intercompany Relations as shown below.

Mandatory Setups to Check:
1. Make Sure there are no security rules defined when shipping the item from other Operating unit and Auto Accounting rules are defined(for Selling OU) to default the balancing segment values with Table Name as Standard Lines(Which will get the values from Standard line item or Inventory Item used)

Path for Security Rules:
Responsibility: General Ledger Responsibility
Navigation: Setup → Financials → Flexfields → Validation → Security → Define
Path for Auto Accounting:
Responsibility: Receivables Responsibility
Navigation:  Setup Transactions Auto Accounting

2. Make Sure Shipping parameters are defined for both Shipping and Selling operating units.
 

Responsibility: Order Management Responsibility
Navigation: Shipping → Setup → Shipping Parameters
3. Make Sure that the COGS account is assigned to the Transaction Type used for SO in Selling Organization.
Responsibility: Order Management Responsibility
Navigation: Setup-> Transaction Type 

4. Make sure that a value is assigned for System parameter ‘Inventory Item For Freight’

Responsibility: Order Management Responsibility
Navigation: Setup → System Parameters → Values
Intercompany Transaction Process:
1. Create and Book Sales Order:
Responsibility: Vision Japan Order Management Responsibility
Navigation: Orders, Returns → Sales Orders
Create a Sales Order with Vision Operations Shipping Warehouse and book the order as shown below.
 

2. Release the Order and Ship the Item
Responsibility: Vision Operations Order Management Responsibility
Navigation: Shipping → Release Sales Orders → Release Sales Orders
Release and ship the order. Then notice the transaction status as ‘Shipped’ or ‘Interfaced’ on Shipping Transactions form as shown below.
Navigation: Shipping → Transactions
 
3. Run Workflow Background process
Responsibility: Vision Japan Inventory Responsibility
Navigation: Workflow Background Engine
Run Workflow Background Process.
4. Run Auto Invoice Master Program to create Customer Invoice
Responsibility: Vision Japan Receivables Responsibility
Navigation: View → Requests → Auto Invoice Master Program
The invoice created is shown below.
Navigation: Transactions → Transactions
5. Create Intercompany AR Invoice
Responsibility: Vision Operations Inventory Responsibility
Navigation: Reports → Intercompany Invoicing
Run the Program ‘Create Intercompany AR Invoices’ to create Intercompany AR invoice.
6. Import Intercompany AR invoice
Responsibility: Vision Operations Receivables Responsibility
Run Auto Invoice Master Program with parameter Source as ‘Intercompany’. The Intercompany invoice created is shown below.
Navigation: Transactions → Transactions
7. Create Intercompany AP Invoice

Responsibility: Vision Japan Inventory Responsibility

Navigation: Reports → Intercompany Invoicing
Run the Program ‘Create Intercompany AP Invoices’ to create Intercompany AP invoice.
8. Import Intercompany AP invoice
Responsibility: Vision Japan Payables Responsibility
Run Payables Open Interface Program with parameter Source as ‘Intercompany’. The Intercompany AP invoice created is shown below.
Navigation: Invoices → Inquiry → Invoices

Possible Errors while making Intercompany Transactions:
1. Please correct the revenue account assignment 
2. INCIAP – Create Intercompany AP Invoices Terminated By Signal 11 Error
3. Can not retrieve payment term from bill-to site information
4. Returned warning from extra function
Solution: Check Mandatory Setups Section.
Accounting setup is used to set up the accounting structure which controls transaction processing across Oracle Financial Applications . With Accounting setup manager we can define and maintain the accounting setup for Legal Entities,

              Ledgers,
              Operating Units,
              Subledger Accounting,
              Intercompany and Intracompany Balancing, and
              Reporting Currencies
Responsibility:   General Ledger
Navigation:       Setup : Financials : Accounting Setup Manager → Accounting Setups
Click on Create Accounting setup to setup the Accounting structure.
There are three steps in Accounting setup process.
1. Assign Legal Entities: 
Here we may create or assign existing LE to the accounting structure. We need not assign legal entity if there is no legal entity context.

If legal entities are involved, we need to define separate accounting setup for each legal entity, which require it’s own primary ledger. So ledgers have to be defined for each legal entity separately.

The need for other legal entity depends on Chart of Accounts, calendar, Currency, Accounting Method and Ledger processing options. If a legal entity requires any one of the above attributes to be different, a separate primary ledger is required.

Chart of accounts refers to the number of segments that a Chart of accounts structure consistes of.
Calendar refers to the type of accounting calendar that a legal entity uses. Ex: Monthly or Quarterly Calendar.
Currency refers to the primary currency that a legal entity belongs to.
Accounting Method refers to the subledger accounting methods based on the different accounting standards that a legal entity operates.
Ledger Options refers to the options that control how journals and transactiones are processed for a ledger.
Ex: Journal approval, Suspense account, Average balances, Intracompany balancing option, etc.

If we assign Legal entities to the accounting structure, we must assign specific balancing segment values to legal entities to identify and secure transactions by legal entity.

2. Define Accounting Representations: 
Here we need to define Primary and Secondary ledgers to make the Accounting representation.

Primary Ledgers are mandatory. We need to define the primary ledger for each legal entity and accounting setup.

Secondary ledgers are optional.  Secondary ledgers have to be assigned to the accounting setup or primary ledger to maintain multiple accounting representations for the same legal entity. A secondary ledger can differ in one or more of the following attributes from primary ledger.
Chart of Accounts,
Currency,
Calendar,
Accounting Convention

Secondary ledgers can be maintained at different levels such as:
Subledger level
Journal level
Balance level
Adjustments

In this step we can map the ledgers to  chart of accounts and assign currency, calendar, subledger accounting method and reporting currency.

Reporting currencies have to be assigned when you want diferent currency representation to primary or secondary ledgers.  Reporting currencies must share same chart of accounts,calendar,accounting method and ledger processing options as their source ledger. Reporting currencies can be assigned at different levels.
Subledger level
Journal level
Balance level

We can not use subledger level reporting currencies for secondary ledgers.

3. Save Accounting structure: This step is to review and complete the accounting setup.