Learnings of an Oracle Apps Consultant

Wednesday, November 18, 2009

Recording a Refund of a Prepayment or Advance

The other day someone asked me how to do we collect a refund from an employee to whom we have made an advance payment (prepayment). There are a couple of approaches that can be used. The same approach applies to refund from suppliers as well.
Approach 1: Invoice to retire the prepayment and then Debit Memo for refund.
Step1: Create a standard invoice and apply the remaining amount of prepayment to it.
Step2: Then enter a debit memo and pay it with a Refund payment in the Payments window.The result will be that the outstanding prepayment / advance made is no longer there as this is matched to the invoice and the refund that is collected from the employee is matched to a Debit Memo in AP so that the refund is also recorded in Oracle. However, one needs to ensure that the expense account that you use in the invoice to retire the prepayment and Debit Memo for the refund is the same account.
Approach 2: Create an invoice to retire the prepayment to an amount equal to the refund. This approach to handle this scenario is pretty straight forward.
Step1: Create a standard invoice equal to the refund amount and apply the outstanding amount of prepayment to it.
Approach 3:If the employee is a salesperson or someone who would incur employee expenses regularly, then in that case the easist option would be to leave the advance / prepayment amount as-is and match it to the expense the person incurs next time around.

Sunday, July 19, 2009

Too many Managers spoil the project

All of us in our childhood must have heard of the proverb "Too many cooks spoil the broth". If too many people try to take charge of a task, the end product might be ruined. This applies to any task like an implementation project as well.An easy way to identify if the project is going awry is when you find many people following up to find the status of the job being done. In one of my earlier projects there was one developer writing a piece of code and there were four managers chasing the poor lady for updates and status. However, none of these managers were capable or inclined to help out the person writing a complex piece of code.One really felt bad when a bug was detected in the code and none of the managers took ownership and started blaming each other and the poor lady for writing the incorrect code.

So, the next obvious question would be wher the top management is blind to such mis-management or most of the time over-management (sometimes micro-management)? My answer would be a definite 'Yes'. For the top management what matters at the end of the day is billing and not success or failure of projects. They are mostly driven by short term objectives of ensuring that their bench strength is low and not the long term objective of ensuring customer satisfaction by delivering a good solution for the client. Also, with having too many managers, the internal dynamics of peer rivalry; of each person trying to show case himself as the better manager in the eyes of top management and trying to out-do the other in a selfish manner puts the project at a grave risk.

Most of us would have seen or been part of such a project. Do share your thoughts on why we staff so many managers when there is no necessity for so many managers without defining clear boundaries and scope and conflicting job area. And, if someone has changed such a scenario, do share your experience on how to change such a situation and bring the project back to track?

Sunday, December 07, 2008

Learn using Sub Ledger Accounting (SLA) in R12 Oracle Payables

Sub Ledger Accounting (SLA) is a Rule-Based accounting engine that defines how journal entries are generated in sub-ledger transactions in Oracle sub-ledger applications. However, SLA also supports external applications generating accounting information which ultimately needs to be transferred to Oracle General Ledger. Before we get into SLA we need to know few of the basic concepts like event types, event class, etc.

Event Class - classifies transaction types for accounting rule purposes. E.g. in Payables, following are possible event classes: Invoice, Debit Memo, Prepayments, Refunds and Payments.

Event Type - for each transaction type, defines possible actions with accounting significance. E.g. in Payables, following are possible event classes: AP Invoice Events – Validation, Adjustment and Cancellation. Similarly we will have event types for other event classes.

In most of the cases we would not need to customize SLA and accounting features will work same as 11i. Some of the typical business scenarios where we would need to customize SLA in Payables are as follows:


  • To have a different Liability account based on Operating Unit for which the invoice is entered.
  • To have different natural account (expense) based on different Invoice Type and Invoice Line type.
  • To have different natural account (expense) and different liability account based on different criteria like supplier type, entering currency, pay group, etc.
  • The cost center segment of Invoice distribution Liability account shall be picked from the Invoice distribution Account while the other segment values from the Liability account defined at supplier site.

To cater to some of the above requirements we can use other alternatives like using distribution sets also. But setting up a custom SLA for such scenarios is an easier approach with lower user maintenance. I will try and show a simple scenario of how to derive custom accounting for a business scenario using SLA in Oracle Payables.

Business Scenario: We need to define different liability account (natural account segment) based on Supplier Type so that business can track the liability by supplier type. The other segment values will default from supplier site. I am limiting this example to only one supplier type “Contractor". The objective would be to have a different natural account for Liability account for invoices of supplier type "Contractor" alone, while for other supplier types the normal liability account should default.


Solution:

Step1: First define a mapping set for various supplier types.

Navigation: Setup > Accounting Setups >Sub Ledger Accounting Setups >Accounting Methods Builders > Journal Entry Setups > Mapping Sets


Step2: Define ADR (Account Derivation Rules)

Navigation: Setup > Accounting Setups >Sub Ledger Accounting Setups >Accounting Methods Builders > Journal Entry Setups > Account Derivation Rules

Step3: Define JLD (Journal Line Definition)

Navigation: Setup > Accounting Setups >Sub Ledger Accounting Setups > Accounting Methods Builder > Methods and Definitions > Journal Line Definitions

Always create a copy of the seeded JLD and do not modify a seeded JLD. We will create a copy of ACCRUAL_INVOICES_ALL for our Chart of Accounts ‘Operations Accounting Flex’ only. Add the custom ADR created to ‘Liability, Basic’ (Line Assignment)

Step 4: Setup AAD (Application Accounting Definition)

Navigation: Setup > Accounting Setups >Sub Ledger Accounting Setups > Accounting Methods Builder > Methods and Definitions > Application Accounting Definition

Create a copy of seeded AAD only and do not modify existing AAD. I am creating a custom AAD called ‘TEST_AAD’ for COA ‘Operations Accounting Flex’.

Step 5: Setup SAM (Subledger Accounting Methods)

Navigation: Setup > Accounting Setups >Sub Ledger Accounting Setups > Accounting Methods Builder > Methods and Definitions > Subledger Accounting Methods

Create a copy of a seeded SAM and do not modify seeded SAM. Add the custom AAD to the Event Class ‘Payables’.


Step 6: Assign the custom SAM to Primary Ledger

Navigation: Set ups > Accounting Setups > Ledger Setup > Define > Accounting Setup

Verification of new SLA rule:

Create an invoice for supplier type ‘Contractor’ and create accounting

Liability Account for Supplier Type “Contractor” is 01-000-2990-0000-000

Liability Account for other Supplier Types is 01-000-2210-0000-000

Sunday, November 09, 2008

Payables Duplicate Invoices

A common requirement that is there in almost all Payables department is to identify potential duplicate invoices. The standard Oracle report 'Invoice Audit Listing' is not effective when it comes to list down potential duplicate invoices. The 'Invoice Audit Listing' is more of a listing and the payables manager has to spend time and effort in analysing this report. Also, not to mention when it comes to performance this report takes quite a while to complete if you mention a very old 'Begin Invoice date'.

A common requirement that comes to my mind is to report all invoices which are of same amount and currency from a supplier within a given time period. Although this report is a relatively simple report to design, but as a thought i feel this should be included as a standard report in payables.

Wednesday, September 03, 2008

Indian Megavendors

The other day i was reading an article in http://specials.rediff.com/money/2008/aug/13slide1.htm on India's top three IT companies. As per this article, Gartner has come out with a report in which they predict that, Tata Consultancy Services, Infosys Technologies, and Wipro Technologies, collectively referred as 'India-3,' will emerge as the next generation of IT service megavendors. These vendors are increasingly being considered for strategic service deals, and will augment or, in some cases, replace today's acknowledged megavendors by revenue -- IBM Global Services, Accenture and EDS -- in this space by 2011, says Gartner.

Obviously this means there will be a lot of consolidation that is bound to happen in the IT space in India, as there are a lot of tier-2 firms who cannot match the pace of growth of the top 3 firms in India. This means some of these small IT companies will be forced to sell out as the war on margins and cornering a portion of the relatively fixed marketshare will become more acute. However, for the top-3 to actually reach the levels of present generation megavendors, apart from the cost advantage, they have to position on other parameters as well. The article talks of four critical competencies on which the emerging Indian megavendors are positioning themselves.

The competencies are: process excellence; world-class HR practices; providing high quality services at a low cost; the achievement of significant and disproportionate 'mind share' compared to their actual size.

However, the catch is to continue providing high quality services at a low cost and yet try and increase the mind-share further. With wage bills increasing and worries over global slowdown, maintaining low cost is definitely a big challenge. However, i feel where Indian top-3 companies are critically lacking is in thought-leadership. The culture of innovation and path-breaking developments is still not visible. The present day megavendors have primarily reached this position due to a large investment in innovation and thought-leadership. Anyways, interesting times ahead for all in tough situations, and obviously only the toughest will survive and prosper.

Sunday, August 31, 2008

Importing Payments and Paid Invoices into Oracle - Oracle needs to provide an API

How many of us had a requirement of importing paid invoices and their corressponding payment details to Oracle? I would say many. But strangely till date there in no straight forward method to import payments into Oracle. I feel its time that Oracle comes up with a standard process like an API to handle this business need.
There are a few workarounds to this scenario. A direct update of Oracle base table is one but this comes with the risk of losing support from Oracle.
The other, more robust way would be to use the manual payment feature of Oracle to record such payments that have been already done in the earlier system. However, automating this process using a batch program is a challenge.
Do put in your comments in case you have a soultion to this problem which would help a lot of people out there.

Monday, August 11, 2008

Oracle E-Business Tax: Regime to Rate Flow in Oracle R12

In Oracle Release12, there has been some very significant changes, one among them being how we define tax. E-Business Tax is now a single point where we define our taxes for all the sub-ledger modules. In this article I will try to do a sample Tax setup using the Regime to Rate Flow of Oracle E-Business Tax in the Tax Manager responsibility.

Creating a Tax Regime

In Oracle E-Business Tax, a Tax Regime is the system of regulations for the determination and administration of one or more taxes.

  1. Navigate to the Create Tax Regime:

• Navigation: Tax Configuration àTax Regimes

• Click the Button “Create”

  1. Enter a new tax regime based on the following information:

· Tax Regime Code: TESTREGIME1

· Name: Test Regime1

· Regime Level: Country

· Country Name: United States

· Parent Regime Code: Blank

· Effective From: 01-JAN-1950

· Effective To: Leave Blank

· Used to group Regimes: Unchecked

  1. Expand the Controls and Defaults region

· Allow Tax Recovery: Checked

· Allow Override and Entry of Inclusive Tax Lines: Unchecked

· Allow Tax Exemptions: Checked

· Allow Tax Exceptions: Checked

· Tax Currency: USD

· Minimum Accountable Unit: 0.01

· Rounding Rule: Nearest

· Tax Precision: 2 (default)

  1. Click on Button “Continue”
  2. Enter tax regime configuration options:
    • Party Name: Vision Operations (Note: Select the Operating Unit owning Tax Content party type)
    • Configuration for Taxes and Rules: Common Configuration with Party Overrides
    • Configuration for Product Exceptions: Party-Specific Configuration
    • Effective From: 01-JAN-1950
    • Effective To: Leave blank
  3. Click on Button “Finish”
  4. You will get the message “The tax regime was successfully created”

Creating a Tax

  1. Navigate: Tax Configuration à Tax Regimes
  2. Search for the Tax Regime you created above using the filter criteria of Country as “United States” and Tax Regime Code as “TESTREGIME1”
  3. Click on button “Go”
  4. Click on icon “Regime to Rate Flow”
  5. Click on button “Create Tax”

  1. 2Create a new Tax as per information mentioned below:
    • Tax Regime Code: TESTREGIME1 (defaults)
    • Configuration Owner: Global Configuration Owner
    • Tax Source: Create a new tax (defaults)
    • Tax: TESTTAX1
    • Tax Name: Test Tax1
    • Tax Type: SALES
    • Effective From: 01-JAN-1950 (defaults)
    • Effective To: Leave blank
    • Geography Type: STATE
    • Parent Geography Type: COUNTRY
    • Parent Geography Name: United States
    • Tax Currency: USD (defaults)
    • Minimum Accountable Unit: 0.01 (defaults)
    • Rounding Rule: Nearest (defaults)
    • Tax Precision: 2 (defaults)
    • Exchange Rate Type: Blank
  2. Click on “Show Controls and Defaults”
  3. Enter the details as per information mentioned below
    • Allow Override and Entry of Inclusive Tax Lines: Unchecked
    • Allow Tax Rounding Override: Unchecked
    • Allow Override for Calculated Tax Lines: Checked
    • Allow Entry of Manual Tax Lines: Checked
    • Use Legal Registration Number: Unchecked
    • Allow Duplicate Tax Registration Numbers: Unchecked
    • Allow Multiple Jurisdictions: Unchecked
    • Tax Accounts Creation Method: Create Tax Accounts (defaults)
    • Allow Tax Exceptions: Checked (defaults)
    • Allow Tax Exemptions: Checked (defaults)
    • Tax Exemptions Creation Method: Create Tax Exemptions (defaults)
    • Allow Tax Recovery: Unchecked

  1. Click on Button “Apply”
  2. You will get the message “The Tax has been successfully created”
  3. Return to Tax Regimes. Click on “Expand All”
  4. Click on icon “Create Tax Status”
  5. Enter the following:
    • Tax Status Code: TESTSTATUS1
    • Name: Test Tax Status1
    • Click on Button “Apply”
    • Check as Default Tax Status: Checked
    • Default Status Effective From: 01-Jan-1950
  6. Click on button “Apply”
  7. You will get the message “The tax status was successfully created.”

Create Tax Rates

  1. Go back to the Regime to Rate Flow
  2. Click on “Expand All”.
  3. Click on icon “Create Tax Rate”. Enter the Tax Rates based on information mentioned below:
    • Tax Regime Code: TESTREGIME1 (defaults)
    • Configuration Owner: Global Configuration Owner (defaults)
    • Tax: TESTTAX1 (defaults)
    • Tax Status Code: TESTSTATUS1 (defaults)
    • Tax Jurisdiction Code: Blank
    • Tax Rate Code: TESTRATE1
    • Rate Type: Percentage (defaults)
    • Percentage Rate: 10
    • Effective From: 01-JAN-1950 (defaults)
    • Effective From: Leave blank

  1. Click on icon “Rate Details”. Enter the Tax Rate Details based on information mentioned below:

· Tax Rate Name: Test Sales Tax Rate1

· Tax Rate Description: Test Sales Tax Rate1

· Set as Default Rate: Checked

· Default Effective From: 01-JAN-1950

· Default Effective To: Leave blank

· Allow Tax Exemptions: Checked (defaults)

· Allow Tax Exceptions: Checked (defaults)

· Internet Expenses Enabled : Checked

  1. Click on the button “Apply” to return to the Create Tax Rate page.
  2. Click on the button “Apply” to return to the Regime to Rate Flow page
  3. You will get the message “The Tax Rate has been successfully created.”

Creating Tax Jurisdiction

  1. Navigate: tax Configuration à Tax Jurisdiction
  2. Click on button “Create”. Enter the Tax Jurisdiction details based on information mentioned below:
    • Tax Jurisdiction Code: TESTJUR1
    • Tax Jurisdiction Name: Test Tax Jurisdiction1
    • Tax Regime Code: TESTREGIME1
    • Tax: TESTTAX1
    • Geography Type: STATE (pick from list!)
    • Effective From: 01-JAN-1950
    • Effective To: Leave Blank
    • Geography Name: CA
    • Precedence Level: 300 (defaults)
    • Collecting Tax Authority: Blank
    • Reporting Tax Authority: Blank
    • Set as default Tax Jurisdiction: Yes (defaults)
    • Default Effective From: 01-JAN-1950
    • Default Effective To: Leave blank

  1. Click on the button “Apply” to return to the Regime to Rate Flow page
  2. You will get the message “The tax jurisdiction was successfully created.”

Creating Tax Accounts

  1. Navigate: Tax Configuration à Taxes
  2. Search for the Taxes that we created just now using the following filter criteria:
    • Country Name: United States
    • Tax Regime Code: TESTREGIME1
    • Tax: TESTTAX1
  3. Click on the button “Go”. Then click on icon “Update”.
  4. Click on button “Tax Accounts”.
  5. Enter the Ledger as “Vision Operations (USA)”
  6. Click on button “Create”
  7. Enter the Tax Account details based on following information:

· Operating Unit : Vision Operations

· Tax Expense: 01-210-7710-0000-000

· Tax Recoverable/Liability: 01-000-2220-0000-000

  1. Click on button “Apply” and return back to Tax Accounts page.
  2. Click the button “Apply”, to return to the Update Tax page.
  3. Click the button “Apply”, to return to the Taxes page.
  4. You will get the message “The tax was successfully updated”.

Creating Tax Rules

  1. Navigate: Tax Configuration à Tax Rules
  2. Access the rule type by filtering on the following criteria:
    • Configuration Owner: Global Configuration Owner
    • Tax Regime Code: TESTREGIME1
    • Tax: TESTTAX1
  3. Click on button “Go”. Then click on “Expand All”.
  4. Set the following values corresponding to the Rule Types:
    • Determine Place of Supply: Ship To
    • Determine Tax Applicability: Applicable
    • Determine Tax Registration: Bill From Party
    • Determine Taxable Basis: STANDARD_TB
    • Calculate Tax Amounts: STANDARD_TC

Making Tax Available for Transactions

  1. Navigate: Tax Configuration àTaxes
  2. Select the Tax created based on the following filter criteria:
    • Country Name: United States
    • Tax Regime Code: TESTREGIME1
    • Tax: TESTTAX1
  3. Click on button “Go”. Then click on icon “Update” on the “TESTTAX1” row.
  4. Check the box “Make Tax Available for Transactions”

  1. Click on button “Apply”.
  2. You will get the message “This tax does not have an exchange rate type. Are you sure you want to enable this tax?” having options “Yes” and “No”. Click on “Yes”
  3. You will get the message “The tax was successfully updated.”

Test your Tax Setup by creating an Invoice in Payables /Receivables or creating a Purchase Order.

About Me

My Photo
Krishanu Bose
India
Krishanu's Oracle Applications Blog - Oracle Apps consulting services scenario in India. Also, an inside view of Oracle Apps outsource services in India. Also the blog features new developmets in Oracle Apps and my learnings in this field. The views expressed are my own only and not of my employer Infosys Technologies Limited. The views and opinions expressed by visitors to this blog are theirs and do not necessarily reflect mine.
View my complete profile

Blog Archive