Cash Management Process

on Sunday, December 30, 2012



Create, Allocate and Transact a Move Order

on Sunday, December 9, 2012

Move Orders in Oracle provide good functionality for approval based movement of material with in an inventory organization. Move Order Approvals use a workflow (INV: Move Order Approval) for approvals and hence provide flexibility to extend it for approvals.
Move Orders can be created from different sources. These move orders are identified by Move order type at the header level. Different types of move orders are:
Move Order Requisitions These are created from the move order form. Based on the setup at the organization and item level, move orders require approval before they can be allocated and transacted. These requisitions can be created to charge an account or move the material from one subinventory to another.
Replenishment Move Orders These are auto-created with pre approved status. Depending on the planning type you can replenish the quantity in a subinventory for an item. Three types of replenishment plans (in relation to move orders) are available:
  1. Min-max Replenishment Planning
  2. Kanban Replenishment Planning
  3. Replenishing Count planning
Based on these sources, when appropriate programs are run, move orders are automatically created.
Pick Wave Move Order Requisitions These move orders are specifically for the sales order picking process. When Pick Releasing program is run move orders are created as preapproved and allocated. Pick Confirm process transacts these pick wave move orders.
Move orders contain headers and lines. All types of approved move orders have to be allocated (basically reserved) before they can be transacted. Depending on the item transaction controls (Subinventory, Locator, Revision, Lot or Serial number) move order creation and allocation gets complex.
















The process is simple. Create and approve Move orders, allocate move order lines and transact them. Here let us review creating, allocating, and transacting a move order requisition of first type (requisitions) using APIs. These move orders will be created in pre approved status and hence do not use workflow. Move Order Issue transaction type is used in this example. An account is chosen while creating this move order. When successfully transacted, this account gets debited, crediting inventory account of the subinventory. From the user interface, to create Move orders, Move Orders window is used.
The lines are allocated when allocation step is performed. In this example the logic for allocation and transaction is borrowed from pick confirmation code. To allocate and transact same form is used: Transact Move Orders.
If the item is lot and serial number controlled (as in this example), you have to pass the lot number and serial number information into the move order lines table parameter. And also make sure to pass another parameter (p_suggess_serial) as true. This will automatically take care of allocating the lot and serial numbers into the appropriate table as mentioned in the process flow. Also when we allocate the move order from the user interface, the records in the form are created in the mtl_material_transactions_temp table with transaction_status as 2, which allows the user to change the values from user interface. But in order to perform transaction from SQL, you have to change this value to 3 so that the transaction manager can pick these records up.

Common Issues in ADI

on Wednesday, November 7, 2012

1    TNS could not Resolve Service Name or any TNS entry related error during ADI logon.

Check the TNSNAMES.ora file in the network/ADMIN and NET80/ADMIN folders of the ADI Oracle Home. The TNS file should have one entry for DB instance and once for the file server. Below are the sample TNS entries for DB and File Server. Just make sure that DB and File server entries should have different port numbers.

     DB
        XYZ =  (DESCRIPTION =    (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)
        (HOST = orxyz01.abc.com)(PORT = 1555)))    (CONNECT_DATA = (SERVICE_NAME =
         XYZ11) )  )

     File Server
        FNDFS_XYZ =  (DESCRIPTION =    (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = 
        TCP)(HOST = orxyz01.abc.com)(PORT = 1666)))    (CONNECT_DATA = (SERVICE_NAME =
        XYZ11) )  )

Also user should have full access on the TNSNAMES.ora files in the network/ADMIN and NET80/ADMIN folders of the ADI Oracle Home.

2    Unable to Publish Output of the report.

You are able to run the report in ADI but when you try to publish the output you get the error "File Server Failed to Initialize". This error is because the ADI application is not able to connect to the file server. Check if the file server port is open and you are able to connect to the port. File server port is the port number in the File Server entry in the TNSNAMES.ora.

3    Unable to upload through ADI

If you are not able to upload Journals or Budgets through ADI and getting error "File Server Failed to Initialize"  the issue is because the ADI application is not able to connect to the file server. Check if the file server port is open and you are able to connect to the port. File server port is the port number in the File Server entry in the TNSNAMES.ora.

4    Macros related error in ADI upload

You get error "The macros in this project are disabled" during upload through ADI. The reason for this issue is because the Tools > Macro > Security is set to high. As ADI macros are unsigned they cannot be added to the Trusted Sources. Solution is to set the Tools > Macro > Security to Medium and accept Enable Macros when the template (Existing Worksheet) is opened if the template is from a known source.

Order to Cash Process

on Thursday, October 18, 2012


R12 - Application Object Library (AOL)

on Sunday, October 7, 2012

The first one is server-responsibility profile hierarchy type. This hierarchy type can be used while defying Profile options and can be set at Site level, User level, or a new combination Server+Responsibility. This hierarchy type can be set in the profile option definition and cannot be changed later at the runtime. When using server+responsibility level both are considered as
a pair. Profile values can be set for combinations of a specific server with a specific responsibility, or for only a server or responsibility with a default for the other.

While processing a request the profile value is determined as follows:

1. User level value
2. Specific Server + Specific Responsibility value
3. Specific Responsibility + Default Server value
4. Specific Server + Default Responsibility value
5. Site level value

At top level the User level value overrides all other values. Once a profile has been defined to use the Server+Responsibility hierarchy type, values can be set at this level on the Define Profile Values page.

Second one is Profile categories that can be used to classify and group related profiles together. Once a Profile category is defined, it can be used to search for profiles by category when setting or viewing profiles values. Categories are also useful for finding related profiles, by looking for other profiles grouped in the same categories. Administrators can define as many categories as per the requirement , containing any profiles. Many profile categories are available as seeded data for the Administrators. Administrators are free to customize these categories to meet their requirements, or delete them entirely and replace with their own.

Next is the Value Set Definition form has added two additional features. One a new Usages button that shows everywhere a value set is used a Test button for Table Validated Value Sets that tests the value set for SQL errors . The Usage button opens another window which displays all descriptive flexfields, key flexfields, and concurrent programs referencing this value set. This information can be useful when a value set defintion has to be changed or deleted. 


Missing Exchange Rates in AP - Payments

on Tuesday, September 4, 2012

Sometimes, when you create a payment in AP using foreign currency, you will get this message
APP-SQLAP-10020: Rate information is not available for this currency, date, and exchange rate type.
Enter rate information for this currency, date and exchange rate type in the Daily Rates window.
In Oracle R12, the payment can be committed even there is no rate available. However, this caused the accounting couldn’t be created which will be impacted to period close process.
So, you can do this step to handle missing exchange rate:
  • Payments are created in the Payment Workbench with or without exchange rates based on the Payables options. If the exchange rate type is User, then the exchange rate must be given before the check can be created. If the exchange rate type is not User, and the required exchange rate entry check box has been checked, then the exchange rate must be available in the GL Daily Rates before the check can be created. However, if the exchange rate is not User and the required rates check box is not checked, a foreign currency check can be created without an exchange rate.
  • Foreign currency payment created and maturity events should get accounted when the exchange rate fields are populated on the related checks and it should not be picked up by the accounting program when the exchange rate data is missing. In this case the AutoRate program should be run to populate the exchange rates.
  • In the payment workbench form, maturity exchange date and maturity exchange rate fields should not be nullified when the user clicks on “Enter/Adjust Invoices” Button.

The conclusion is when you have missed the exchange rate in payment, just try the AutoRate in the concurrent program ([N] Other Concurrent, then click find and submit new request) to fill in the uncomplete payment information. This program will populate all payment which use foreign currency.

Oracle EBS Reporting Tools

on Saturday, August 11, 2012


Oracle Reports
Fixed format reports delivered with the 11i release were built on this tool. This is the most used tool for reporting on Oracle E-Business Suite. Most customizations of available reports are built with this tool. Once customized the output of the report can be delivered in Excel, Word, Acrobat documents or text format.

Oracle Discoverer
is an intuitive tool for creating reports and performing on-line analysis. Discoverer uses the EUL (End User Layer), a metadata definition, which hides the complexity of the database from the end user and provides easy to use wizards for creating reports to suite individual needs. The flexibility of this tool allows the user to create  cross tab reports that perform like pivot tables in Excel.

Oracle XML Publisher 
is a new Oracle tool for reporting. It enables users to utilize a familiar desktop tool, like MS Word or MS Excel, to create and maintain their own report. At runtime, XML Publisher merges the custom templates with the concurrent request extracts data to generate output in PDF, HTML, RTF and EXCEL.

RXi Report: (Variable reports)
variable format reports delivered with the E-Business 11i. With this tool a user has the ability to print the same report with multiple layouts. The user can also choose which columns he requires on a particular report. This tool is most used on Oracle Financials Applications

FSG Reports: (Financial Statement Generator)
is a powerful report building tool for Oracle General Ledger. Some of benefits of using this tool are that a user can generate financial reports and schedule reports to run automatically. FSG Reports are available for the general ledger responsibility only and can be used to see key financial account balances.

Business Intelligence: System (BI)
is a set of tools to provide high level information for the managers (decision makers) to run their business such as the profitability of a particular business unit. The information this tool provides helps managers to take the right decision with the daily data that is uploaded on their systems.

Batch Element Entry

on Monday, July 9, 2012

Batch Element Entry (BEE) enables payroll to enter batches of element entries, validate that the entries are correct and then transfer the entries to the employee’s element entries.

Batch Element Entry also provides the following functionality:

* Batch Header identifies the batch and determines what happens if any of the batch lines duplicate existing element  entries.
*  Batch Lines enable payroll to create batches by Element with the relevant Input Values for processing in payroll.  Defaults can be initiated for faster data entry.
*  BEE provides the ability to validate batches prior to submitting.  
    This feature enables payroll to identify incorrect employee assignment numbers, elements that are not eligible for
    employees, etc.
*  Provides the ability to use Control Totals to help validate the batch.
*  Messages that indicate if batches are out of balance with control totals, in valid employee assignment numbers, etc.
*  BEE Spreadsheet Interface - Enables the loading of payroll data from various sources into BEE using the delivered BEE Spreadsheet Interface tool. 
*  BEE API -   PAY_BATCH_ELEMENT_ENTRY_API.CREATE_BATCH_HEADER for Header
                    PAY_BATCH_ELEMENT_ENTRY_API.CREATE_BATCH_LINE for Element Line Data
 
The BEE could be implemented with the help of following approaches:
  1. Programmatically populating the header records and the line records in the BEE tables based on the data file available.
  2. Entering input values and other data for one element, and running a concurrent process to create identical batch lines for all the assignments in an assignment set.
  3. Creating an element set and making entries for each element in the set, one assignment at a time.
  4. Selecting an element and creating or updating lines for this element using defaults to speed entry, and changing defaults as necessary when working through the batch.
 

Multi-Org or multiple organization access (MOAC)

on Monday, June 25, 2012


Multi-Org or multiple organization access (MOAC) is basically the ability to access multiple operating units from a single application responsibility. In Release 11i, when one had to enter or process data for multiple operating units, one had to login to different responsibilities because each responsibility could only access one operating unit. If one was managing Payables for Sweden, Norway and Finland one needed to define three different responsibilities. In Release 12, one would create a Security Profile and assign as many operating units as you required. One can tie that security profile to a single responsibility using a profile option called MO: Security Profile. For example, you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all three operating units.

In Release 12, define a security profile in HR using the Security profile form or the Global Security profile form, and assign all of the operating units that one would want a responsibility to access. The one needs to run a concurrent request called “Run Security List Maintenance” from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO: Security Profile.

Define a security profile using either of the two forms: Security Profile form or the Global Security Profile Form that is shown below. Both forms look almost identical where Security Profile Form allows one to select operating units from only one Business Group where as Global Security profile Form allows one to select operating units from multiple Business Groups.
One can define another profile option called MO: Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms.


AME (Oracle Approval Management) Architecture

on Friday, June 15, 2012



Calling application send a request (to get list of approver) to the AME by means of sending Runtime data of transaction to AME API. For example, PO data to AME API 
AME execution Engine process the data. 
AME engine evaluate rules for that transaction types (rules are define in AME schema for  a transaction type).A transaction may have more than 1 rule associated with it. 
AME evaluate each rule depend on the conditions/attributes. 
Rules then execute action Type. 
AME then return calling application list of approvers(Sorted based on Setup in AME). 
(Please note when we call AME, it generate list of approvers, Identify next approver, check the status history to check if people has already approved or Not). 
Calling application receive response from AME and then send Notification to Approvers. 
PLUS calling application update the status of the Approver in AME by means of calling a AME API ( Updatestatus API). 
AME is done when approves is complete.

GL: Natural Accounts Flexfield Qualifiers and Accounting Concepts

on Sunday, May 27, 2012

This is how the accounting works. Everything pertains to what an Organization owns, have and what it has to give. There is always a balance to what it owns and what it has to give.
This “balance” is converted into an equation, also called the Accounting Equation, which is:
ASSETS = LIABILITIES + OWNER’S EQUITY
though I’ve understood it this way:
OWNER’S EQUITY =  ASSETS – LIABILITIES
Let’s take a simple example to justify the above equation, say you have Rs.1,000 but you know that you have to pay a loan of Rs.400 that you borrowed from your friend.
So according to the equation Rs.1000 is your Asset, Rs.400 loan is your Liability and Rs.600 is the Equity that you own.
Every organization which is registered with Government is obliged to disclose the above mentioned balance in a document called Balance Sheet.
That’s all for the accounting equation.
Moving on after the accounting equation,
There is a
  • Debit (Always on the Left Side, written as “DR” for shorthand) and
  • Credit (Always on the Right Side, written as “CR” for shorthand)
  • Debit Side should always be equal to Credit Side or
  • Left Side should always be equal to Right Side or
  • DR = CR
With the Debit and Credit comes in the
  • Increase in balance or
  • Decrease in balance
There are 5 natures of account. Every account can have any one nature and that’s why we can also call it natural account. These natures are:
  1. Assets
  2. Liabilities
  3. Revenue
  4. Expenses
  5. Owner’s Equity
ASSET: Literally asset is any thing which is valuable to a person, organization or any entity. For example we say that “his quick learning ability is an asset to him” or “Her writing ability is her asset”. Why do we say that? Because quick learning skill or writing ability adds value to a person. A writer sells his writing skills to earn money, similarly in terms of business anything which is valuable to a business is the asset.
Say your organization is a pharmaceutical and manufactures Medicines, then all the chemicals used to manufacture medicine is your asset or in other words the Raw Material is your asset. The cash your organization own is an asset because it can be used to buy items or pay your employee who in turn are used to run your business. There are different types of assets, the broader categories of asset are Current Asset and Fixed, but let’s not discuss it here. For now it is enough to know that asset is anything which is valuable to your organization.
Asset INCREASES when it is Debited and DECREASES when Credited.
Any organization which is registered with the government and exists as Legal Entity is obligated to disclose its Assets on the balance sheet to the government and its Creditors. You might ask Who are creditors and Why is it that an organization is obligated to disclose asset to them? With Creditor comes in the liability.
LIABILITY: Comes from the word “Liable”. Literal meaning of Liable is “to be obligated” , “to be responsible” or “Legally responsible”. In terms of accounting you become liable, responsible to pay when you buy or purchase any thing from another entity. You are liable to compensate whatever you’ve bought. Generally an organization records its liability and pays it afterward. Again, there are different types of liabilities like Short Term Liability and Long Term Liability.
Liability INCREASES when it is Credited and DECREASES when Debited.
OWNER’S EQUITY: This is the share of owner in the business.
Equity INCREASES when it is Credited and DECREASES when Debited.
REVENUE: By definition it is the total gain before inducting any expense. It is mostly associated with the Asset. When any organization sell goods or renders its services, it records an increase in Asset and with this increase comes the gain it has made from selling the goods or services. This gain is called Revenue or Income.
Revenue INCREASES when it is Credited and DECREASES when Debited.
Revenue are not displayed in Balance Sheet. They are reflected in Owner’s Equity.
EXPENSE: By definition any payment made is an expense. How payments are made? Either by Cash or Credit which eventually means Cash. So redefining Expense “The outflow of cash to any person or organization for its supplied Goods or rendered Services”. We incur expenses daily, for example, taxi fare is an expense, dine-out payments are expenses. Expenses are associated with Liability. Whenever an organization books a liability, it is mostly against some expense. There are different type of expense
Expense INCREASES when it is Debited and DECREASES when Credited.
Following table shows the Tabular form of the effect
Nature Debit Credit
Asset Increase (+) Decrease (-)
Liability Decrease (-) Increase (+)
Equity Decrease (-) Increase (+)
Revenue Decrease (-) Increase (+)
Expense Increase (+) Decrease (-)

In Oracle General Ledger, when we attach the “Natural Account” Flexfield Qualifier to a segment. System attaches the 5 nature on the Value form. When we add the Natural Account Value, we have to define the nature of the account as well.
When we define the natures of the account, the accounting rules of Debit and Credit works accordingly. Like in Payables, the line item is Debit side, so if you’ll give an expense or asset account, it will increase and vice versa.
It is necessary to understand the application accounting behavior in order to properly suggest and implement the accounting solution in an organization.

Deleting Old Invoices

on Friday, May 4, 2012

We can purge invoices, provided following conditions should match:
If you are purging invoices, the Purge program purges related invoice distributions, invoice approvals, and invoice batches. You can purge invoices that meet the following criteria: 
- Last Update Dates of the invoice and its distributions, and the Invoice Date, is less than or equal to the Last Activity Date.
- Invoice is fully paid or is a zero–amount invoice.
- Invoice is fully posted.
- Invoice does not have any 1099 distributions, and is not for a 1099 supplier.
- Invoice was not generated by a recurring invoice template.
- Invoice is not a prepayment, and no prepayments have been applied to the invoice.
- All of the invoice’s payments meet the Payment Purge Criteria.
- No open encumbrances are associated with the invoice.
- Invoice is not Oracle Projects related.
- All purchase orders referencing the invoice meet the Purchase Order Purge Criteria (this condition applies only when you
choose Matched Invoices and POs for the purge category).
- If Oracle Assets is installed, all of the invoice’s distributions were tested by Mass Additions.

Discoverer workbooks are shared with which User

on Monday, April 23, 2012

Discoverer is a great reporting tool from Oracle which you use to create reports from your Oracle eBS database. You create an End User Layer (EUL) which will describe views and tables that are available in your database schemas - of course also any customized ones. Also you're able to reference any custom pl/sql functions that you've added to your instance - and use those in your EUL definition. 


End-users will drag and drop columns from your EUL in a report (i.e. table styled, pivoted etc). Custom functions can be used here also. At the background Discoverer will generate the corresponding SQL statement which will include all the types of relationships (inner, outer, left outer etc) which you've defined in the EUL. The SQL is fired against the database which will return the dataset. The Discoverer interpreter will generate the layout that's defined in the workbook.
Workbooks can be shared among users. So, user A will create a nice and terrific report but user B wants to use this report also. In that case user A will share his report with user B which becomes available in his repository.
Sometimes you want to know which workbooks are shared with an user. Use below statement to get that information from the database. (The complete EUL definition is stored in specifc tables within the EUL database schema).

SELECT
    ACCESS_PRIVS.AP_UPDATED_DATE LAST_UPDATED
    , DOCUMENTS.DOC_NAME WORKBOOK_NAME
    , DOCUMENTS.DOC_DEVELOPER_KEY WORKBOOK_KEY
    , DOCUMENTS.DOC_DESCRIPTION WORKBOOK_DESCR
FROM
    EUL_US.EUL5_ACCESS_PRIVS ACCESS_PRIVS
    ,EUL_US.EUL5_DOCUMENTS DOCUMENTS
    ,EUL_US.EUL5_EUL_USERS USERS
WHERE
    DOCUMENTS.DOC_ID = ACCESS_PRIVS.GD_DOC_ID
    AND USERS.EU_ID  = ACCESS_PRIVS.AP_EU_ID
    AND DOCUMENTS.DOC_CONTENT_TYPE = 'application/vnd.oracle-disco.wb'
    AND USERS.EU_USERNAME LIKE '#' || (SELECT USER_ID FROM FND_USER WHERE USER_NAME = ) || '%'