Create READ ONLY Responsibility

on Monday, January 25, 2010

ORACLE RECOMMENDED SOLUTION


AAIdentify the menu that is attached to the GL super user and Payables manager.

AAIdentify the form functions that are attached to this menu.

AANow create a new form function exactly similar to the standard one but with the option
aaaaQUERY_ONLY="YES" in the location

    a Sysadmin
è application è function è Form è Parameter.

     This makes the function read only.

AANow create a new menu with these read-only functions and attach the menu to a new responsibility which is
aaaaassigned to users who need to have read-only privileges.

CREATE READ ONLY DATABASE USERS

aaaCreate a Database user apps_readonly

aaaGrant all the objects/synonyms from apps to apps_readonly

aaaCreate synonym for all the apps objects in apps_readonly

aaaIn Oracle apps, register apps_readonly as a user and Datagroup (Similar to apps)

aaaCreate responsibilities (similar to apps) but attach to apps_readonly datagroup created in Step 4.

CUSTOM.PLL


aaaCreate read-only responsibilities follow naming convention, all of them should end with same string
aaaae.g. "Read Only".

aaaExtend custom.pll to prevent save function if user responsibility ends with "Read Only".

Payables - Business Scenarios

on Friday, January 15, 2010

Delete an invoice that's been entered incorrectly

An Oracle 'line' (an invoice, distribution etc) can be deleted at any point up until a record is created; by selecting 'Edit' and 'Delete Record' from the Oracle menu. However, Oracle usually creates a record when the user moves to another line, or moves away from the page they were working on.

If a mistake has been made, some fields can be altered up until the point that the invoice is paid. For instance, the supplier address can be altered, as can the payment terms and account code.

If all else fails, clicking on 'Actions1' and then selecting 'Cancel Invoice' will cancel the invoice.

Add extra lines to enter more than four invoices

From the invoice AP Invoice screen, press the down arrow to add an additional line.

Check if a supplier is on Oracle without entering an invoice

On Oracle AP; select 'Suppliers' then 'Enquiry'. The 'Find Suppliers' screen has a greater range of search options than using F11 in the 'Invoice Entry' screen. The search is also more accurate as the search isn't case-sensitive.

Click on 'Find'. The result provides a range of information about the supplier, including payment and delivery terms. Click on 'Sites' to view the addresses associated with the supplier. Use the arrow keys on the keyboard to toggle between the different addresses.

Always use the supplier enquiry function to confirm that a supplier is definitely not set up in Oracle prior to completing and submitting a new supplier form.

Check that a supplier is set up on Oracle at the address I require

You may be aware that a supplier is set up on Oracle, but the supplier may not be set up at a particular site; a common problem where a supplier has a number of branches. You are able to search for a supplier by their postcode within the Accounts Payable responsibility. Click on the torch symbol on the toolbar, and enter the postcode under the 'Site' field. Click on 'Find'; Oracle will display the supplier, or suppliers, that match the postcode you've entered.

The 'Torch' symbol offers a wide range of search options for invoices, and is a handy alternative to using Query mode within Accounts Payable.

Change the account code for an invoice after it's been validated? **'Unmatched' invoices only**

This solution only applies to 'unmatched' invoices; invoices paid that do not relate to an i-Procurement order.

Locate the invoice in the invoice entry screen using Query Mode (F11), then view the 'Distribution' for the invoice. Select the line you wish to alter and click on 'Reverse 1' to reverse out the existing distribution. Enter a new line with the correct account code; you can use 'Shift + F5' to copy the account code down and overtype the part of the code you wish to correct. Validate and account the invoice. Oracle will then create a journal to correct.

Change the account code for an invoice 'Matched' to an order

Changing the account code on a matched invoice will recreate a commitment on the original account code (as the order will not have been altered). The recommended solution is to complete a journal to move the expenditure to the correct account.

Confirm a payment date with a supplier

From the invoice entry screen, enter query mode (F11). Use the invoice number or the voucher number for the invoice that the payment relates to and press CTRL + F11. With the invoice displayed, click on the '3 View Payments' tab. The 'Payment Date' will be displayed. Click on the button marked 'Payment Overview' to view further information about the payment such as the batch reference and date the payment cleared.

Confirm that a payment has been made to a supplier

Oracle contains a range of information to help confirm that a payment has been made to a supplier. First of all, bring up a copy of the invoice using query mode in Accounts Payable. If the invoice has been paid, an amount will have been entered in the 'Amount Paid' field. If this value is missing then further investigation is required.

Click on the tab '3 – View Payments'. The 'Payment Date' is displayed, along with the 'Document Number' (the reference that appears on the remittance advice). The 'Payment Method' confirms the method of payment, either by cheque ('Check') or BACS transfer ('Electronic').

Click on 'Payment Overview'. The 'Amount' shows the full value of the payment made to the supplier; a cheque or BACS payment may result from a more than one invoice and it shouldn't be assumed that the payment to the supplier matches the invoice total. All invoices that make up the payment are listed; make sure the invoice you're searching for appears on the list.

If the 'Status' field reads 'Reconciled Unaccounted' , then the payment has cleared to the supplier (either the cheque has been banked by the supplier, or the funds have been transferred to the supplier's bank account). The 'Cleared Amount' and 'Cleared Date' are also quoted. In the case of a BACs transfer, to confirm the bank account that the funds have been paid in to, close the 'Payment Overview' screen and click on the tab '3 – Scheduled Payments'. The bank account name and number are quoted; confirm that these are correct with the supplier.

Change the payment terms on an invoice

The payment term for an invoice defaults to 30 days. To alter the payment term, enter the invoice as usual. After entering the Invoice Amount, and prior to setting the invoice distribution, scroll to the far right of the page, to the field marked 'Terms'. The terms of the invoice can be set to one of a number of options chosen from a drop-down list.

Find a batch reference number for a payment

As above. The batch reference is shown on the 'Payment Overview' screen.

Stop a payment going out for an invoice I've accounted

From the Invoice Entry screen, enter query mode to locate the invoice. Click on the second tab; 'Holds'. Select a 'Hold Name'; the reason for putting the invoice on hold. The hold can be released at any point by following the same process and selecting a 'Release Name'.

Oracle sometimes puts an invoice on hold automatically when you attempt to validate. If the issue with the invoice cannot be resolved, then the invoice should be cancelled by clicking on 'Actions1' and selecting 'Cancel Invoice'.

Run a batch report to show invoices that I've paid?

From the invoice entry screen, select the 'View' menu, then 'Requests'. From the 'Find Requests' screen, click on 'Submit a New Request'. Make sure 'Single Request' is selected and click on 'OK'. Now enter 'Invoice Register' in the 'Name' box. A new 'Parameters' window will open; enter the login details of the input clerk in the 'Entered By' field, the 'From Entered Date' and 'To Entered Date' (for the period you wish to cover with the report), then click on 'OK'. 'Submit' the query.

The report will initially be pending; click on 'Refresh Data' until the request is completed. Finally, click on 'View Output'. To put the report into a printable format; select 'Tools' from the menu and then 'Copy File'.

To ensure the report prints out correctly go to the 'File' menu and select 'Page Setup'. Make sure the page orientation is set to landscape and reduce the values for the left and right margins to '0'.

Run a report to check for invoices I haven't validated

By running an 'Invoice Register' and adjusting the parameters you are able to run a report showing unvalidated invoices.

From the invoice entry screen, select the 'View' menu, then 'Requests'. From the 'Find Requests' screen, click on 'Submit a New Request'. Make sure 'Single Request' is selected and click on 'OK'. Now enter 'Invoice Register' in the 'Name' box. A new 'Parameters' window will open; enter the login details of the input clerk in the 'Entered By' field. Under the 'Unvalidated Invoices Only' field, change the value from 'No' to 'Yes'. Click on 'OK'. 'Submit' the query.

If you have entered any invoices that haven't been validated they will be shown on the report. Remember that you will need to re-run the report if you have more than one input clerk at your school.

Run a report to show invoices that I've cancelled

A report showing cancelled invoices can be run in exactly the same manner as for unvalidated invoices.

On reaching the 'Parameters' window, enter the login details of the input clerk for the invoices in the 'Entered By' field. Under the 'Cancelled Invoices Only' field, change the value from 'No' to 'Yes'. Click on 'OK' to submit the query.

View the bank account details for a supplier

From the Accounts Payable responsibility, select 'Customer' then 'Enquiry'. From the 'Find Suppliers' screen, search for the supplier using either the supplier name or supplier number fields, then click on 'Find'; the supplier's details will be displayed.

Next, click on the 'Sites' button at the foot of the page. Use the up/down arrows on your keyboard to toggle between different addresses for the supplier. Click on the tab marked 'Bank Details' to confirm payment details for the supplier.

Alternatively, where you've already paid an invoice for a supplier, locate the invoice in the 'Invoice Entry' screen and click on the tab marked '4 Scheduled Payments'.

View a list of invoices I've paid to a supplier

There are two ways of achieving this, depending on the application you are using at the time, and the information you require from the report.

In Accounts Payable, run an 'Invoice Register' and select the period you wish the report to cover. The report lists invoices in supplier order; delete any information from the invoice register that's not relevant to leave a list of invoices paid to the chosen supplier.

From Oracle Discoverer Viewer, run a 'GLT10 GL Details – Download' report for the required period(s) and export to MS Excel. From the 'Data' menu on the toolbar select 'Sort'. Under the 'Sort By' field select 'Supplier Name', then by 'Invoice No.'. From the 'Data' menu, select 'Subtotals'. Choose to subtotal at each change in invoice number, and add subtotal to line value.

The former is a quick way to run a check on invoices that you've paid to a supplier, and has the advantage that it shows the gross value of each invoice. The latter only shows the net value of each invoice as it appears against your school's account, but the data is more versatile in the way in which it can be used.

I can't find a supplier in Accounts Payable.

Use the 'Supplier Enquiry' function in Accounts Payable. Enter part of the supplier's name in the 'Supplier Name' field, proceeded by a '%' symbol. For example, for W.H.Smith Ltd enter %smith; the field is not case-sensitive. Oracle will bring up a list of matching results; if the supplier has been set up it should appear on this list. Be careful where punctuation/spaces are used as Oracle will search for an exact match between what you enter and the way the supplier has been set up.

To confirm that the supplier is set up for use in Accounts Payable, follow the instructions above and select the required supplier. Make a note of the supplier number; you may find it helpful to keep a list of supplier numbers for commonly-used suppliers.

Click on 'Find'. Oracle brings up the supplier record for the supplier you have selected. Click on 'Sites'; a separate record is set up for each supplier site. Use the 'up' and 'down' arrows on your keyboard to toggle between these different sites. Under the 'General' tab there is a box marked 'Site Uses'. The field marked 'Pay' must be selected for the supplier site to be active in Accounts Payable.

I've entered an invoice that I should have matched to a Purchase Order as a 'Standard' invoice. Can it still be matched despite being accounted?

Yes it can. Through AP invoice entry, locate the invoice using Query mode (F11). You will need to reverse whatever has been manually entered on the distribution screen, as the account information on the distribution screen will be 'drawn across' from the order. Match and complete the invoice as per usual.

A supplier has queried a payment. Looking at the 'Payment Overview' screen the payment reads 'Reconciled – Unaccounted'. Has the supplier been paid?
When a payment to a supplier has cleared Oracle enters 'Reconciled – Unaccounted' in the payment 'Status' box. Oracle also enters a 'Cleared Amount' and 'Cleared Date' at the same time that it completes the 'Status' box.

A 'Status' box that reads 'Reconciled – Unaccounted' is confirmation that the payment has cleared to that supplier. For a payment by BACS this will be the date the transfer has cleared to the supplier's bank account, for payments by cheque this is the date that the cheque is cashed.

If a payment has been cancelled the 'Void Date' field will have been completed.

I've paid the wrong supplier. What should I do?

The supplier who has received payment in error should be contacted, and a credit note requested. The credit note should be processed as usual in Accounts Payable.

The supplier used to be on CODAS; why do I need to fill out a 'New Supplier' form?

All suppliers in regular use were transferred across when Oracle started. The Department no longer has access to CODAS, and the supplier details held in the application, and so supplier request forms must be completed.

An invoice I've entered hasn't been paid.

A quick visual check to see whether an invoice has been paid is to enter query mode in AP (by pressing 'F11' on your keyboard), and search for the invoice based on the invoice or voucher number (press 'CTRL' and 'F11' to initiate search). The 'Amount Paid' field is populated at the point that the invoice is paid to the supplier; check that there is a figure in the box and that this figure matches the invoice amount. If the invoice hasn't been paid, there are some simple checks that can be carried out to find out why:

Check the due date. If the 'Amount Paid' field isn't completed, check whether the invoice is marked as 'Validated' and 'Accounted'. If it is, check when the payment is due by clicking on the tab marked '4 – Scheduled Payments' and refer to the 'Due Date' field. Standard payment terms are 30 days from the invoice date, and will be paid at the latest possible payment run. If the payment is required sooner the payment 'Terms' field can be changed to immediate at any point up until the invoice is paid.

Has the invoice been validated? On occasion the 'validating' and 'accounting' of an invoice may be missed. This may happen when an Oracle session is interrupted, or perhaps the user is called away on other business and the Oracle session times out. Click on 'Actions1' select 'Validate, then select 'Account'. The invoice 'Status' should now read 'Validated' and the 'Accounted' field should read 'Yes'.

Remove any 'Holds'. A further reason why an invoice may remain unpaid is when Oracle is unable to validate an invoice due to calculation errors. When this occurs Oracle places a 'Hold' on the invoice; no further action will be taken until the reason for the hold is corrected. If a hold has been applied to an invoice it will be shown on the 'Summary' section of the invoice screen.

The hold can be reviewed by clicking on the tab marked '2 – Holds', where a reason for the hold is given. After the error has been corrected it will be possible to 'Validate' and 'Account' the invoice; if the invoice is over 30 days old it will be paid at the next available payment run.

Check that there are no large outstanding credit notes. It's important to remember that payments are made Council wide to suppliers. When a school processes an invoice the payment forms part of a batch with other invoices due to the supplier. If balance the supplier owes Derby City Council exceeds the amount that DCC owes the supplier then payments will halt to that supplier until the balance owed tips back in the favour of the supplier.

To check the balance owed click on the 'Torch' symbol on the toolbar in Accounts Payable. Enter either the supplier's name or number, and click on 'Calculate Balance Owed'. The amount outstanding to the supplier is displayed.

FRM-40654: Record has been updated ..... ???

on Thursday, January 14, 2010

Very common problem occurs in Forms is  

"FRM-40654: Record has been updated by another user. Re-query to see change"

Cause:  Another user has updated this record since you performed a query and has changed at least one field in the record. Your actions have not changed the record in memory.

Action:  You can update or delete this record now only if another user has restored the field values back to the way they were when you performed the query. Otherwise, you must re-query to fetch and display the new record into the form before you can update or delete it.

This is very common issue after migration or with any external interfaces, If you have taken care by TRIM function , then there is nothing to bother, else your end user will report this, which need a proper investigation.

Reason & Resolution

This error is caused because of any of the following

  1. FRM-40654 Caused by unnecessary foreign key fields

  2. Trapping problem of some sort in Oracle Forms with triggers, execute_query

  3. Record locked ie Another user changed the record and saved after you queried the record

  4. Some of the columns have trailing spaces, and Forms by default truncates the trailing spaces and hence the database value and form value will not match and you get the error.

  5. Date field stored in database is with time stamp but form showing only Date component and hence Form value and database value will not match and hence you get the error.
    (you need to remove the time component in DB or show date time in Form)

Bottom line is the value in Database and value in form are not matching, so you have to check for each column and see where is the difference.
I know this is going to be painful checking out every field for changes, but there is no other options left.

What you have to do is to investigate the column first and then make a update with TRIM function as

update <table name>
set <column name> = trim(<column name>);

Resolutions Example

Example 1

User reported the problem at suppliers site,

  • Taking which table hold the supplier data.

  • Check a column value for a VARCHAR2 column. In this case VENDOR_SITE_CODE. or Address_line1
    SELECT '['||vendor_site_code||']'
    FROM po_vendor_sites_all
    WHERE vendor_id=<VENDOR ID>;

  • Once you get the column , then use update script, with TRIM function, like

  • UPDATE po_vendor_sites
    SET vendor_site_code = TRIM(vendor_site_code)
    WHERE vendor_id = <VENDOR ID>;

Example 2

Your bank statement Reconcile program ending up with error

In similar way you have to check like

1. select '['||trx_text||']' from ce_statement_lines_interface;
2. select '['||trx_text||']' from ce_statement_lines;

The above mentioned scripts need to be run against all varchar2 columns, not just trx_text, in either ce_statement_lines or ce_statement_lines_interface.

If trailing spaces are found, run the following scripts to correct them:

update ce_statement_lines_interface
set trx_text=trim(trx_text,' ')

Change the column and table name to those with trailing spaces

Example 3

Invoice Through Auto invoice (External system)

Same way to find the column and apply by this kind of script
update ra_customer_trx_lines_all
set DESCRIPTION = trim(DESCRIPTION) ,
SALES_ORDER = trim(SALES_ORDER)
where customer_trx_id = <customer trx id>;

What if , not have "trailing space" Problem

Confirm with DBA , is table is having any lock or not . If still the problem exists raise SR and apply the script provided.

Tips of Developing Conversion and Interface

Always use TRIM function in your insert statement of the program