I work for an international company that has organizations all over the place, and some users can’t figure out the currency for some organizations easily, which can be a problem when analyzing item costs.
So, we got a fairly simple request. The request was to create a way for users to look up the currency code when looking at the Item Costs screen in Oracle.
One member of our team suggested two ways to solve the problem. The first was to create a descriptive flexfield to populate the currency code. The second one was to customize the item cost form, and add the currency code to the form.
Both seemed too complex for my tastes. A simple request deserves a simple solution.
I had an idea. A simple idea. “What about a really simple personalization?”
Ten minutes later, the problem was solved. The team member with the complex solutions admitted my idea worked, but he didn’t like that it wasn’t scalable. I’m not even sure what that means in this context.
The Boss liked the solution. The group requesting the change liked the solution. Everyone is happy (well, other than it-won’t-scale boy).
Here is the simple solution:
Navigate to the Item Costs Summary (CSTFITCT) form. Go to Help > Diagnostics > Custom Code > Personalize
Create the forms personalization by first creating a custom menu item under the Tools menu
Description: Create the Currency Code menu
Trigger Event: WHEN-NEW-FORM-INSTANCE
Processing Context: Not in Enter-Query Mode
Context: (if you wanted you could turn this on for certain users or responsibilities)
Description: Activate Tools Menu
Menu Entry: MENU1
(Oracle left MENU1 – MENU15 to us developers to use at our whim, but don’t use the SPECIALs)
Menu Label: &Currency Code
Then we activate that menu item and have it display a simple message with the currency code
Description: Display the currency code
Trigger Event: MENU1
Processing Mode: Both
Description: Display a message
Message Type: Show
=SELECT ‘The currency code is ‘||gsob.currency_code FROM
INNER JOIN org_organization_definitions morg on morg.set_of_books_id = GSOB.SET_OF_BOOKS_ID
WHERE morg.organization_id = fnd_profile.value(‘MFG_ORGANIZATION_ID’)
And you’re done. The message text must start with the =SELECT and you can’t concatenate it with regular text, so any additional text has to be done in the SQL statement.
When the user has selected an organization and navigated to the Item Costs Summary screen, he or she can easily select Currency Code from the Tools menu.
A simple message box will pop up with the currency code for that inventory organization. Easy.
Let me know if you have any better ways to solve this problem in the comments below. Especially if it is scalable.