Wednesday, January 30, 2013

RICE/CEMLI Terminology

Source



RICE/CEMLI Terminology

In my Oracle career I often hear confusion over RICE/CEMLI terminologies, what they stands for ? what is the meaning of...blah blah blah....so with the help of my very good friend Charan, I have decided to write my take on this.

AIM (Applications Implementation Methodology) => During packaged ERP(enterprise resource planning) implementations, Clients often have additional requirements apart from the existing (standard) business process, for which they need to create/change theVanila system (Unchanged ERP Implemented system) processes, and its these changes that come under RICE/RICEW components. AIM is the methodology/standards/published guidelines, which Oracle suggests it's Clients to follow while developing
RICE/RICEW components for their business requirements.

RICE stands for Reports, Interfaces, Conversions, Enhancements / Extensions
-----
 > Sometimes extended to FRICE > F for Forms
                                         -------
                                        OR 
                                        RICEW > W for Workflow.
                                         -------

Forms/Reports/Workflows : Create/Change existing forms/reports/workflows available in  ERP system to  meet the Clients business requirements.

Interfaces : Linking (Programs) between other systems to ERP system in order to synchronize the Data.They can be Manual, Batch or Real-Time. Interfaces can be either outbound or inbound. An outbound interface reads data from Oracle Apps tables and usually creates output files in the third party tool specified format. An inbound interface reads data from flat files (usually) and calls Oracle APIs to upload data into Oracle Apps.

Conversion : It is converting the data structure and data design of legacy system data to satisfy the customer’s business rules before importing it into Oracle .It is like a one time run of an inbound interface except that the amount of data processed during conversion could be potentially huge since all the required data from the legacy system would be transferred to Oracle.

Enhancements/Extensions : Please see below.

>> In R12 RICE components have been extended to CEMLI components.
                                                                             --------

CEMLI Stands for Configurations/Customization, Extension, Modification, Localization, and Integration.


Configurations : Configure the existing, pre-built application features according to your client's requirement.Changing setups and profile values can be the example of configurations.

Customization : Customization means altering/changing the standard objects or creation of custom object to meet client's business need. It may be Extensions or Modifications.

Extensions : Extension means creating custom code from scratch, existing objects (views, packages and java classes etc) can be used. It is having different behaviour from seeded one.

Modifications : Modifications is enhancing/changing the existing code to meet the client's requirements. It is the modification of seeded behaviour.

Localization :  It is to define the different legislative support provided by oracle Applications based on country/region/language requirements.

Integration : It can be Data Integration or Application Integration, options for these two are Open Interface tables, APIs, EAI(Enterprise Application Integration Tools), BPEL, AQ, EDI etc.

             >> Apart from these there is one more term and that is Personalization.

Personalization : Tailoring the layout or visibility of page content to meet client requirements is Personalization. Changing the user interface (UI) look-and-feel, making any field visible/enabled/disabled/mandatory/non mandatory comes under Personalization.

Saturday, January 19, 2013

Windows re install

A clean reinstall is often better than getting a new computer since most PC's come larded with sponsor's bloatware and useless factory utilities that have much better versions built into Windows 7. For this reason many tech enthusiasts clean reinstall using the Product Key on the COA sticker affixed to the machine. 

Download the latest official Win7 installer ISO with SP1 for your licensed version, burn to DVD or write to flashstick using Windows 7 USB-DVD Download Tool.

Back up your files externally, make your Recovery Disks so you have a path back to factory condition, or save a Backup Image of the entire HD first. Run an audit of hardware and software including Product Keys using Belarc Advisor. Gather your program installers.

Boot the Windows 7 installer, choose Custom Install, then Drive Options (Advanced) to Delete all partitions not needed, repartition as desired following illustrated steps given here: Clean Install Windows 7. If you don't have a partition scheme in mind, just click Next after deleting to let the installer create and format your installation partition for you.

The installer is mostly driver-complete, with newer arriving quickly via optional Windows Updates. Just in case, have your Wireless or Ethernet LAN driver on flash stick or CD so you can install it to get online quickly. Thenenable hardware driver auto-updating and check for optional Updates.

Any drivers still missing in Device Manager after several rounds of Updates can be found on the Support Downloads webpage for your model computer or device, along with possibly needed hotfixes which you can also wait to see if you need. Driver Install - Device Manager 

Install updates and then programs slowly over time to gauge performance changes after each. Don't let any programs write themselves into msconfig>Startup as they slow startup, become freeloaders on your RAM/CPU and can spy on you. Uncheck everything except AV and gadgets in msconfig>Startup, then after reboots do the same in msconfig>Services after checking Hide All MS Services. Check back periodically to see if anything writes itself back in and turn it off in its Program Preferences or Uninstall it. Startup Programs - Change 

Use a lightweight free AV like Microsoft Security Essentials which works perfectly with Windows 7 Firewall. 

Activation at Control Panel>System may require a robocall to MS the first time to record your hardware signature in their servers. 

When finished, clean and order the HD perfectly using state-of-the-art free CCleaner "Run Cleaner" button and Registry tab, then Puran boot-time defragger + Full Disk Check after checking Intelligent Optimizer on Additional Operations tab:

Finally save a Windows 7 Backup image externally so you never have to reinstall again, just reimage the HD or it's replacement using DVD/Repair CD with the stored image. 

Thursday, January 10, 2013

Source


Consignment Inventory – A different approach to handle


“Consignment Inventory is inventory that is in the possession of the customer, but is still owned by the supplier. In other words, the supplier places some of his inventory in his customer’s possession (in their store or warehouse) and allows them to sell or consume directly from his stock. The customer purchases the inventory only after he has resold or consumed it. The key benefit to the customer should be obvious; he does not have to tie up his capital in inventory. This does not mean that there are no inventory carrying costs for the customer; he does still incur costs related to storing and managing the inventory.”
So the real question is how to handle this in Oracle Applications. Here in this article, imagine you are tasked to implement this solution for you customer who plays role of “supplier” in the above example. The basic requirements usually are:
  1. Ability to capture a sales order so that the goods can be shipped to customer site with documentation
  2. Inventory value of these products should still be seen in the supplier’s accounting books.
  3. We should not be invoicing the customer at the time of shipping as it is still supplier’s inventory.
  4. Optionally ability to track these assets (location details). If there is an issue with the product, we should be able to send a technician to fix it and capture the service history.
  5. If the cutomer either buys it or resells it, we should be able to generate COGS and create an invoice for the customer thus generating revenue.
  6. Also if this product that is in “display” and needs to be depreciated, we ahould be able to create this as a financial asset.

To achieve this, we used start the process flow using internal requisition. The reason why we use internal requisition is that we can autocreate internal sales order which can be shipped with documentation like any other shipment. This makes life of logistics easy, because, there is no difference between this order and any other sales order as far they are concerned.
In order to be able to capture this value in accounting books, usually we either create a subinventory or one inventory organization (or sometime even a locator under a common subinventory called Consignment) to represent a customer’s location. I think subinventory approach wins over organization. The reason for this is, cost of the item. If organization approach is used, we have to make sure to keep the cost current in that organization as well.
And when this internal sales order is shipped, material only moves from supplier’s warehouse to logical warehouse or subinventory (which represents customer’s location) depending the way it is setup. Since the material is in that subinventory or organization material value can be seen in the accounting books and quantity also can be tracked.
Earlier Installed Base lacked asset life tracking features. In the absence of such features we could never provide asset tracking (we know it is in subinventory but where is not known (address details)) functionality. Hence sending a field service technician is not easy when a service call is logged. For that matter, replacing that product takes significant amount of time to research. Regarding depreciation, it is even more difficult in those days.
So far all sounds good. But one issue here is creation of internal requisition to start with. A number of times I have seen that users were not happy with that. Think of it: it is the same department that enters normal sales orders, manages these consignment orders as well. Now when you tell them to enter an internal requisition for the consignment orders and not sales order, they tend to be put off. If there is no choice they have to gulp it.
But are there any choices to make the users life easy? So I thought what if users always create sales orders only and we take care of converting them into internal sales orders rather than other way around. With the goal of finding a way to convert any sales order into internal sales order, I started exploring. In no time,to my surprise,I found a way right under my nose.
There is a procedure called auto_create_internal_req in a database package called oe_delayed_requests_util (available even in 11.5.9). It takes order header id as a parameter and converts into internal sales by creating internal requisition and updating the order with source information. That is it. Kicked off writing small piece of code to test. After sometime code was ready (just assembled the code taking snippets from here and there). Guess what, the solution turned out to be a good one. I have written only pl/sql code here. This can be used to plug into workflow.
This is how the new process flow looks like after the code. As you can see in the absence such flow, picking and shipping processes may have to be extended to move the material into a subinventory rather than debiting the COGS at the time of shipping consignment material.
Sometimes there is a need to create an asset when the material is in possession of customer. This helps to capture depreciation till the customer actually buys it. Asset Tracking has capabilities to create assets for the items that are in inventory and also for normal items that are issued to either field locations or projects. This product features can be exploited to achieve this requirement (for this some extension may be required to be written).
 This piece of code does the following:
  1. Creates a location with customer’s ship to address (taking it from salesorder header)
  2. Creates a subinventory and assigns this location to this subinventory
  3. Updates the customer’s ship to site with this location (so that we can create internal reqs for this address).
  4. Creates a row in the po_location_associations_all (this is where the link between customer’s ship to site and HR location is established. Done automatically by the code which updates in step 3)
  5. Creates an Approved Internal requisition and updates the order with the source details.
You can download the code here. I tested this in 11.5.9 as well as 12.0.4 and works pretty well.

Citibank

CITI0000002