Categories
Inventory Purchasing Quality

First Article Inspections

This video shows how we created a First Article Inspection process at one of my clients. We designed the process from scratch as, although Oracle says in their Quality User Guide that the module can be used for these inspections, we could never figure out how. Oracle Support couldn’t tell us either.

Everything is built with personalizations and alerts, so we weren’t required to customize any seeded code.

If you would like a detailed setup document so you could build it in your environment, you can download it from here.

You’re welcome to use it or modify it at will. If you do improve on it (and I know that’s possible!), please let me know what you did. Thanks.

Categories
Inventory Oracle Technical

Auto-hiding the Receipt Header

If you enter header information on all of your receipts, having the header pop up when you enter the Receipts form makes sense. If you don’t – and I’ve found this to be the case for the vast majority of my clients – then the pop-up is an annoyance. This is a personalization we built to hide it automatically.

Categories
Inventory Project Manufacturing

Item Shortage Checks & Project Manufacturing

We were wondering why we only got shortage warnings some of the time when we were doing PO receipts. A Service Request and many trace files later, Support let us know that were were experiencing intended functionality. The shortage checking functionality considers total on-hand and does not consider projects at all. So, if you have none on hand in your project’s inventory and have a shortage on a job for that project, you will not receive a shortage message during PO receipt if inventory exists in another project.

We logged an enhancement request, but we know how they go…

Categories
Costing Inventory

Standard Cost Items in an Average Cost Organization

My client had two conflicting needs, to cost the majority of their items at average actual, but to track around 100 items at a fixed, standard cost even though they were bought at market price through the year. Our original solution was to create two inventory organizations, one standard cost and one average cost. The standard costed items were always received into the standard cost organization and then transferred into the average cost organization.

Although this worked from a costing perspective, the transactional overhead was high. Each transfer involved an internal requisition and an internal sales order. Because all of the items were serialized, much manual input was required.

We were looking for a way to collapse the standard cost organization into the average cost one so that we could eliminate the transactional load. Tom Concialdi, Senior Sales Consultant at Oracle and all-around Manufacturing Guru, pointed us toward the Transaction Cost Extension. This is a stub program that is called whenever the Cost Manager runs. If there is code in the Transaction Cost Extension, it will be executed at that time.

We chose to build a Quotation in Purchasing to hold the standard cost information for our 100 items. We created a dummy Supplier for the purpose and then listed all of the items in the quote with their fixed cost. When the Transaction Cost Extension is called, it is coded to go and look to see if the subject item of the uncosted transaction is on our quote. If it is, the value from the quote is returned and the transaction is costed at this value rather than the original cost that was entered or derived.

We looked at different places to store the fixed cost information; creating a new Cost Type, creating a Lookup etc. We chose the Quotation form because Purchasing maintained the information and were familiar with the form already, and because it contained effectivity dates.

The coding was relatively simple and it works beautifully. All transactions are reset to the fixed, standard cost at the time that they are costed. Because we can be assured that all transactions will be at the same cost, we have no need for the second organization and its associated overhead.

Categories
Inventory

Non-Reservable, Non-Nettable Locators

This is new functionality in R12 that we’ve been using at my current client. We wanted to create a “Putaway” locator in the stockroom that we could use for WIP job completions. Manufacturing would complete into this locator, then the Stockroom folks could transfer it from there to a more permanent storage.

We found that this worked well, but WIP Pick Release was allocating material from Putaway rather than the permanent storage location, so we wanted to make the Putaway locator non-reservable.

Using the new Material Status Definition form, we created an NRL status as below.

We then created the Putaway locator and assigned it this status.

Should work fine, right? Almost. There’s a “secret” profile option that has to be set before it all comes together:

I’m honestly not sure why this profile option exists. I can’t imagine a situation where a user would create additional material statuses and then not use them. I also can’t understand why Oracle would ship the application with this profile option set to null, and why null is interpreted as No. But that’s how it is…

Categories
Inventory Purchasing

RVTII-060 Errors

RCVTII-060

This has to be one of the most useless and annoying messages we run into in Oracle Applications! You get it when you try to do a receipt and the Receiving Transaction Processor doesn’t know how to handle it.

I’ve found that it’s possible to troubleshoot the issue without logging an SR. All it takes is a little bit of help from your friendly DBA.

You’ll need access to the System Administrator responsibility to set the following profile options at the user level:

  1. RCV : Debug Mode = Yes
  2. RCV : Processing Mode = Immediate
  3. FND : Debug Log Enabled = Yes
  4. FND : Debug Log Level = Statement
  5. FND : Debug Log Module = po%
  6. TP: INV: Transaction Processing Mode = Online
  7. INV : Debug Trace = Yes
  8. INV: Debug Level = 11
  9. INV : Debug File (including complete path) = /usr/tmp/invdebug.log (can be any file name – make it easy for the DBA to find)
  10. PO: Enable SQL Trace for Receiving Processor = Yes

You should completely log out of the application and log back in again to enable the changes to the FND profile options. Retry the failing transaction. It may appear to be successful, but remember that you have changed the processing mode away from Online. The Receiving Transaction Processor will have run in the background and errored. (You can verify this by going to View> Requests.)

Ask your DBA to retrieve the file for you.

You should be able to open it with a text editor such as Notepad. It will be long, so I suggest you do a search on the  word “error” until you find something that looks useful. See the example below:

[18-MAR-09 07:51:54] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.Populate_Temp_Table: Calling QP:Bulk insert routine…
[18-MAR-09 07:51:54] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.Populate_Temp_Table: No. of records inserted in QP_PREQ_LINES_TMP=2
[18-MAR-09 07:51:54] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.get_transfer_price: Initializing control record…
[18-MAR-09 07:51:54] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.get_transfer_price: Calling QP:Price Request routine …
[18-MAR-09 07:51:55] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.get_transfer_price: Populating QP results …
[18-MAR-09 07:51:55] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.Populate_Results: Status_Code=IPL Status_Text=Item 82-00004419 and uom EA not on pricelist
[18-MAR-09 07:51:55] INV_INTERCOMPANY_INVOICING: MTL_QP_PRICE.get_transfer_price: EXCEP G_EXC_ERROR
[18-MAR-09 07:51:55] GET_TRANSFER_PRICE: Error from get_transfer_price_for_item

We can see that, in this instance, the receipt failed because of a price list error. (It is a receipt of an intercompany dropship order and the item was missing from the intercompany price list.) Most likely, your error will be quite different, but you can find it by following the same steps.

Make sure that you revert the profile option settings once your troubleshooting is complete.