Create, Allocate and Transact a Move Order
Muhammad Rafi Aamiri 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:
- Min-max Replenishment Planning
- Kanban Replenishment Planning
- 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
Muhammad Rafi Aamiri 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.
R12 - Application Object Library (AOL)
Muhammad Rafi Aamiri 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.
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
Muhammad Rafi Aamiri 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
Muhammad Rafi Aamiri 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
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
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)
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)
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)
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
Muhammad Rafi Aamiri 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.
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:
- Programmatically populating the header records and the line records in the BEE tables based on the data file available.
- 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.
- Creating an element set and making entries for each element in the set, one assignment at a time.
- 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)
Muhammad Rafi Aamiri 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.
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
Muhammad Rafi Aamiri 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
Muhammad Rafi Aamiri 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:
- Assets
- Liabilities
- Revenue
- Expenses
- 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
Muhammad Rafi Aamiri 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.choose Matched Invoices and POs for the purge category).
Discoverer workbooks are shared with which User
Muhammad Rafi Aamiri 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 =