Tuesday, November 27, 2007

Accounting

Normally, there are two basic accounting methods available in the business world:
  • Cash
  • Accrual

And most of the ERP accounting products weather its SUN system, Oracle financial or SAP have functionality to capture on the basis of set up.

Cash Basis Accounting This is what “Based on Realization“
- We Most of us use the cash method to keep track of our personal financial activities.
- The cash method recognizes revenue when payment is received, and recognizes expenses when cash is paid out.
- For example, our local grocery store’s record is based on the cash method. Expenses are recorded when cash is paid out and revenue is recorded when cash or check deposits are received.
- If we summarize, under the cash basis accounting, revenues and expenses are recognized as follows:

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

- Take a note the word “cash” is not meant literally - it also covers payments by check, credit card, barter, etc.
- Moreover it is not standard method in compliance with accountings matching principle.

Accrual Basis Accounting: This is what “Based on Recognition“
- The accrual method of accounting requires that revenue be recognized and assigned to the accounting period in which it is earned. Similarly, expenses must be recognized and assigned to the accounting period in which they are incurred.
- Then the underline question is what is accounting Period, Let explain like this normally a company tracks the summary of the accounting activity in time intervals, which we normally called as Accounting periods. These periods are usually a month long. It is also common for a company to create an annual statement of records. This annual period is also called a Fiscal or an Accounting Year.
- In the accrual method relies on the principle of matching revenues and expenses. This principle says that the expenses for a period, which are the costs of doing business to earn income, should be compared to the revenues for the period, which are the income earned as the result of those expenses. In other words, the expenses for the period should accurately match up with the costs of producing revenue for the period.

Example: Company is doing a business and they have to pay sales commissions expense, so sales commissions expense should be reported in the period when the sales were made (and not reported in the period when the commissions were paid). Similarly, Salary/Wage to employees are reported as an expense in the week/month when the employees worked and not in the week/month when the employees are paid. If a company agrees to give its employees 2-month equivalent salary of its 2006 revenues as a bonus on January 25, 2007, the company should report the bonus as an expense in 2006 and the amount unpaid at December 31, 2006 as a liability. This is most simple kind of matching principal normally has.

In general, there are two types of adjustments that need to be made at the end of the accounting period.

  1. The first type of adjustment arises when more expense has been recorded than was actually incurred or earned during the accounting period.
  2. Similarly, there may be revenue that was received but not actually earned during the accounting period. Also known as Un-earned Revenue.

The accrual method generates tax obligations before the cash has been collected (because revenue leads to tax and revenue is recognized against receivable and not against receipt of money).

If we summarize, under the accrual basis accounting, revenues and expenses are recognized as follows:

  • Revenue recognition: Revenue is recognized when both of the following conditions are met:
    1. Revenue is earned
    - i.e. when products are delivered or services are provided.
    2. Revenue is realized or realizable.
    - i.e. either cash is received or it is reasonable to expect that cash will be received in the future.
  • Expense recognition: Expense is recognized in the period in which related revenue is recognized (Matching Principle).

Timing differences in recognizing revenues and expenses:

Various accounting books did mention four potential timing differences in recognizing revenues and expenses between these of two. Just to recap of those:
a. Accrued Revenue: Revenue is recognized before cash is received.

b. Accrued Expense: Expense is recognized before cash is paid.

c. Deferred Revenue: Revenue is recognized after cash is received.

d. Deferred Expense: Expense is recognized after cash is paid.

Compare with a Case to explain these two methods
Your company purchase a new Laptop on credit in May 2007 and pay $1,500 for it in July 2007, two months later.
Under the both case see how this makes a difference:

  • Using the cash method accounting, you would record a $1,500 payment for the month of July, the month when the money is actually paid.
  • Under the accrual method, you would record the $1,500 payment in May, when you take the Laptop and become obligated to pay for it.

Pros and cons of these Two accounting method

Maintence: The cash method is easier to maintain because you don’t record income until you receive the cash, and you don’t record an expense until the cash is paid, where as in the accrual method, you will typically record more transactions.
Cash-basis accounting defers all credit transactions to a later date. It is more conservative for the seller in that it does not record revenue until cash receipt. In a growing company, this results in a lower income compared to accrual-basis accounting.

GAAP: Most of ERP follows these. Lets explain this way:The word”generally accepted accounting principles” (or “GAAP”) consists of three important sets of rules:

(1) The basic accounting principles and guidelines,

(2) The detailed rules and standards issued by FASB(Financial Accounting Standards Board and its predecessor the Accounting Principles Board (APB)

(3) The generally accepted industry practices.

Normally Standard GAAP will have various guided Principal, such as

  • Economic Entity Assumption
  • Time Period Assumption
  • Cost Principle
  • Matching Principle
  • Revenue Recognition Principle

ERP/Oracle Financials Oracle Financials have been developed to meet GAAP requirements as well as the special needs of different countries. For example, in Oracle Payables you can choose whether to record journal entries for invoices and payments on an accrual basis, a cash basis, or a combined basis where accrual journal entries are posted to one set of books and cash basis journal entries are sent to a second set of books.

Monday, November 26, 2007

Customer Interface

“A customer is someone who makes use of or receives the products or services of an individual or organization.” Its means it is one who become a entity in your business world, irrespective of your line of business. If you are manufacturer the customer is one to whom you provide the product and get the money or services for which your get paid.
Time to time the customer definition has been changed and now in today economy it can be redefined as:
A customer..may include users, consumers, demanders, commanders, and requestors. Any person or entity who interacts directly or indirectly with any business system, thus it can be a client within internal departments, a supplier from the procurement process, an employee, or someone who is ringing up the cash register.

What information is important to keep in Business?
Typical information required for any customer is address, contact, bank , profile,class. Oracle standard form does have more than 8 tabs which hold most of the information.


Fig: Standard Setup process for customer


Fig : Entity Model for Customer Setup

What is Customer Interface ?
Customer Interface is a oracle seeded tool that is used to import and validate current or historical customer information from other systems into Receivables. Once customer information is imported into the system, you can use Customer Interface to import additional data for that customer (such as additional contacts or addresses) and to update existing information. This is yet another options to enter Customer information other than manually update and enter new information using the Customer windows.

Customer Interface and Customer in 11i
11i version uses 23+ tables


TCA model - how its drived
RA_CUSTOMERS, previously the main customer table is now a view.This become view which consists of data in HZ_CUST_ACCOUNTS and HZ_PARTIES tables.
New Customer Tables - also known as HZ Tables
The new HZ Customer Tables have tables for Customer Accounts and Parties


Considering Customer as Parties
HZ_PARTIES stores information about organizations, groups, and people.
If a party becomes a customer then the information for the customer is stored in the HZ_CUST_ACCOUNTS table.
A Party record in the Parties table can have multiple customer account records in the Customer Accounts table.
One row is created in HZ_PARTIES for every customer record that is imported through the Customer Interface.
CRM uses the customer module making it a requirement for all customers to have a party id and customer id.


11i Customer Interface Vs Oracle Base table
Here is summarize information for interface Vs base table. Once Customer Import get completed successfully , the data moved to these tables:
Where to start for Customer Interface
1.The first steps would be your is preparing Receivables setup activity
Be sure to set up new data in Receivables that the Customer Interface should import. For example:
  • AutoCash Rule Sets
  • AutoInvoice Grouping Rules
  • Collectors
  • Customer Addresses
  • Customer Bank Information
  • Customer Exemptions
  • Customer Profile Classes
  • Demand Classes
  • Dunning Letter Sets
  • Freight Carriers
  • Payment Methods
  • Payment Terms
  • Statement Cycles
  • Tax Codes

Be sure to also set up Lookups in Receivables that the Customer Interface should import. These are the lookups:

  • Countries
  • Site Use Codes
  • Credit Ratings
  • Risk Codes
  • Account Statuses
  • Communication Types
  • Customer Classes

2. Next is to map the Interface Tables

RA_CUSTOMER_INTERFACE_ALL

  • ORIG_SYSTEM_CUSTOMER_REF
  • CUSTOMER_NAME
  • CUSTOMER_STATUS
  • INSERT_UPDATE_FLAG
  • CUSTOMER_NUMBER
  • ORIG_SYSTEM_ADDRESS_REF
  • PRIMARY_SITE_USE_FLAG
  • SITE_USE_CODE
  • ADDRESS1
  • COUNTRY
  • LOCATION

RA_CUSTOMER_PROFILES_INT_ALL

  • CUSTOMER_PROFILE_CLASS_NAME
  • ORIG_SYSTEM_CUSTOMER_REF
  • INSERT_UPDATE_FLAG
  • CREDIT_HOLD
  • ORIG_SYSTEM_ADDRESS_REF


RA_CONTACT_PHONES_INT_ALL

  • ORIG_SYSTEM_CUSTOMER_REF
  • ORIG_SYSTEM_TELEPHONE_REF
  • TELEPHONE
  • TELEPHONE_TYPE
  • INSERT_UPDATE_FLAG
  • ORIG_SYSTEM_ADDRESS_REF
  • ORIG_SYSTEM_CONTACT_REF
  • CONTACT_LAST_NAME

RA_BANKS_INTERFACE

  • ORIG_SYSTEM_CUSTOMER_REF
  • PRIMARY_FLAG
  • START_DATE
  • BANK_ACCOUNT_NAME
  • BANK_ACCOUNT_CURRENCY_CODE
    BANK_ACCOUNT_NUM
  • BANK_BRANCH_NAME
  • ORIG_SYSTEM_ADDRESS_REF


RA_CUST_PAY_METHOD_INTERFACE

  • ORIG_SYSTEM_CUSTOMER_REF
  • START_DATE
  • PAYMENT_METHOD_NAME
  • PRIMARY_FLAG
  • ORIG_SYSTEM_ADDRESS_REF

3. RUN the Import Program
- Run Import after AR Customer Interface tables have been populated
- Program will validate the data in the interface table before creating records in Receivables
- Run the Customer Interface process through the Submit Request window
- But, a separate navigational path is also providedInterfaces -> Customer
- Check output file for errors

Common Errors...

a3: Bill_To_Orig_Address_Ref is not a valid bill-to address:
- Verify the Bill-To address reference is valid. Keep in mind that when using the bill-to reference with a ship-to address record… the bill-to must already exist in Receivables.
- Note: Ran into this issue. Try running bill-to records through the interface first and ship-to records as second batch - this will resolve the error. Do not Interface with both in the same batch.

a1:Customer record for insert must have validated profile record defined
- New customers and each Bill-To record must have a customer level profile in the RA_CUSTOMER_PROFILES_INT_ALL table.

a8: Conflicting profile classes specified for this customer/site
Profile classes for customer and bill-to must be the same. Sites cannot have a profile class different from the customer.

J1: Site_USE_CODE is not updateable.

J3: LOCATION is not updateable.

J2: PRIMARY_SITE_USE_FLAG is not updateable.
- Keep in mind that site_use_code, primary_use_flag, and location may not be updateable through the Customer Interface

A3: Customer reference for insert is already defined.

A5: Customer Number already assigned to a different customer.
- Customer reference and Customer number are values that must be unique. Verify the customer reference or customer number does not already exist for another customer.

Tips and Technique

1. Check out some of the Profile Options hitting Customer Import

  • HZ: Generate Party Number
    This the profile option can be updated at Site, Application, Responsibility and User levels.This profile option determines whether party number should be auto-generated. If value is ‘No’,means party number must be passed in by the user else if ‘Yes’ or if the value is not set, party number will be auto-generated.
  • HZ: Generate Party Site Number
    same as above for party site number set at all leval.
  • HZ: Internal Party
    This profile option is used as a part of CRM setup. This must be set if CRM is installed. It is used for data migration purpose.
  • HZ: Generate Contact Number
    This profile option determines whether contact number should be auto-generated.If the value is ‘No’, contact number must be passed in by the user. If the value is ‘Yes’ or if the value is not set, contact number will be auto-generated.

2. Automatic sequence number for customer number
Many times AR department is not like oracle seeded number which start by default 1000.Options are there:
You cannot change the sequence via the forms and therefore any change that you make to the sequence would have to bethrough SQLPlus and that would not be supported.
To set the sequence number

  • Step 1. In the Application Developer responsibility,

Menu: Application=>Database=>Sequence

  • Step 2. Query on sequence RA_CUSTOMERS_NUM_S

This will bring up the sequence for the customer numbers and you can enter the number that you want it to start from.

To set automatic numbering for customer after setting the sequence:

  • Step 1. Menu:=>System=>System Options
  • Step 2. Region - Invoicing and Customers
  • Step 3. Check the box for Automatic Customer Numbering.


3. When doing Migration from other system, adviced to use TRIM Function
- When loading interface tables remove all trailing spaces from import data.Example: LTRIM(RTRIM(customer_name))

4.If importing large number of customers, run in smaller batches instead of all at once.
Oracle benchmark is about 10,000 records per batch is ideal, it is suggested to keep the batch size small.

5.When rolling out in Multi-Org , then you must populate the org_IDs in the interface tables and run the customer interface for each organization set-up responsiblity.