<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bryan Thompson - Oracle Consultant &#187; Inventory</title>
	<atom:link href="http://www.bryanthompsononline.com/oracle/category/inventory/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bryanthompsononline.com/oracle</link>
	<description>A forum for sharing Oracle knowledge!</description>
	<lastBuildDate>Sun, 30 May 2010 15:56:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Interfacing Oracle to Your Legacy WMS &#8211; A Good Idea?</title>
		<link>http://www.bryanthompsononline.com/oracle/2008/01/10/interfacing-oracle-to-your-legacy-wms-a-good-idea/</link>
		<comments>http://www.bryanthompsononline.com/oracle/2008/01/10/interfacing-oracle-to-your-legacy-wms-a-good-idea/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 18:11:34 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Inventory]]></category>
		<category><![CDATA[Order Management]]></category>
		<category><![CDATA[Order to Cash]]></category>
		<category><![CDATA[Shipping Execution]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.bryanthompsononline.com/oracle/2008/01/10/interfacing-oracle-to-your-legacy-wms-a-good-idea/</guid>
		<description><![CDATA[Over the years I've been involved with several Oracle implementations where the decision was made to retain the existing warehouse and inventory management systems in place of Oracle WMS. Perhaps your organization had made a similar decision knowing that the existing warehouse solution was best suited for your operations. Not to say that Oracle WMS is the best warehouse management solution out there - because it may very well not be. In fact, it may be true that your Legacy inventory system is the best fit for your business. Not only may it be the best fit, but keeping the existing system in place also eliminates any risk involved in changing the systems of what can be a fragile inventory and shipping operation. In other words, if it ain't broke, don't fix it - right?]]></description>
			<content:encoded><![CDATA[<p>Over the years I&#8217;ve been involved with several Oracle implementations where the decision was made to retain the existing warehouse and inventory management systems in place of Oracle WMS. Perhaps your organization had made a similar decision knowing that the existing warehouse solution was best suited for your operations. Not to say that Oracle WMS is the best warehouse management solution out there &#8211; because it may very well not be. In fact, it may be true that your Legacy inventory system is the best fit for your business. Not only may it be the best fit, but keeping the existing system in place also eliminates any risk involved in changing the systems of what can be a fragile inventory and shipping operation. In other words, if it ain&#8217;t broke, don&#8217;t fix it &#8211; right?</p>
<p>Perhaps, but before you go down this path there is another factor that should be taken into consideration: ensuring the order fulfillment process as a whole remains seamless and intact. What is the impact to the order entry, scheduling, pick release, on-hand availability and reservation processes if an interface is built to an outside WMS? The answer to this question is especially important in a high-volume environment where your organization fulfills hundreds to thousands of orders a day.</p>
<p>Generally, when an interface between Oracle (or any order processing system for that matter) and a Legacy WMS is built, a division of duties is established. Oracle is given the responsibility to capture orders and release these orders for shipment when ready. The Legacy WMS system is responsible for accepting shipment requests, processing these 
<table align="left" border="0" cellpadding="0" cellspacing="0">
<tr><td>
<script type="text/javascript"><!--
google_ad_client = "pub-4516530845610319";
//200x200, created 12/11/07
google_ad_slot = "2730876339";
google_ad_width = 200;
google_ad_height = 200;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr>
</table>
shipments, and sending the results of the shipment back to Oracle. Essentially, the Pick Release process in Oracle is the &#8220;throw&#8221; to Legacy WMS, and the Ship Confirmation step is the &#8220;catch&#8221;.</p>
<p>Since the nature of both system&#8217;s responsibilities require access to inventory data, your organization must understand that not only are you building a shipping interface, but you are committing to maintain two sets of inventory data that may require several interfaces. Oracle will need access to on-hand balance and reservation information so that order processors have insight to product availability and so that the system knows what orders are eligible for shipment. The Legacy WMS will of course require inventory data to maintain on-hand balance and deduct balances upon shipment. <em>Oracle inventory data, to a degree, will need to be in synch with inventory data in Legacy.<br />
</em></p>
<p>To what degree must be decided. Your organization may determine that both sets of inventory do not require real-time synchronization. For example, you may decide that manual adjustments made to inventory in Legacy may only need to be interfaced through a daily polling process that posts these updates to Oracle. If this direction is taken, then you will need to decide how your shipping interface will handle exceptions that may result from an on-hand balance delta between Oracle and Legacy inventory.</p>
<p>How can an inventory delta occur? Well, let&#8217;s say at the time we place an order for an item in Oracle there is 1 quantity available for reservation. However, during the day a warehouse worker reviews the item and determines that it fails to meet quality standards and as a result he/she performs a manual transaction in the Legacy WMS to issue that quantity to scrap. Because Oracle is unaware that this transaction occurred, the interface will continue to release the ordered item for shipment &#8211; even though there isn&#8217;t enough quantity on-hand in Legacy.</p>
<p>In this situation, you will need to ensure that this situation (among many others) can be handled by the interface. From a business prospective, a decision needs to be made to determine how exactly this delta should be handled. For example, you may want to leave the interfaced transaction in an error status and continue to retry until inventory is made available. Or you may want to cancel the transaction entirely. Whatever that action may be, it&#8217;s important that there is visibility to these kinds of inventory deltas.</p>
<p>If your organization decides that Oracle inventory and Legacy inventory requires real-time synchronization, your interface will <em>still</em> need the ability to handle situations that result in inventory deltas. Let&#8217;s face it &#8211; we&#8217;re all human. Any level of time and effort that is put into a real-time interface could still result in situations unaccounted for. And as best practice, an error handling procedure should still be implemented, especially in an environment where you require real-time synchronization.</p>
<p>Attempting to identify all scenarios that require a communication between Oracle and the Legacy WMS can get pretty crazy. Here are some examples of scenarios that would need to be included:</p>
<ul>
<li>Order cancelations in Oracle</li>
<li>Shipment cancelations in Legacy</li>
<li>Manual inventory transactions in either system</li>
<li>Inventory location transfers, but this is only important if your organization is utilizing hard reservations at order time, <em>which in this case you should seriously rethink using an interface.<br />
</em></li>
<li>Split and partial shipment scenarios</li>
</ul>
<p>We could go on and on with the list of scenarios to cover &#8211; these are just a small fraction of what can occur. And as I mentioned, even if you think you&#8217;ve listed all scenarios, you <em>still</em> need an error resolution process.</p>
<p>I can&#8217;t stress more the importance of error resolution in the event of an inventory delta. Whether it&#8217;s an automated or manual solution is not important, but the most important point is making sure that if an unidentified inventory delta situation occurs that the interface can be capture and handle this error. At minimum, if the error cannot be handled, at least provide the tools necessary to bring visibility to the situation. Trust me &#8211; there is nothing worse than going live with an interface and experiencing errors that were unaccounted for.</p>
<p>This all may come off as something you probably learned in a beginner&#8217;s course for software design, but I&#8217;ve seen and witnessed the aftereffects of an unsuccessful inventory interface launch with some very reputable clients. What results is the very situation that the client wanted to avoid in the first place &#8211; a chaotic situation that requires the involvement of lots of time and resources that the organization did not budget for but has no choice to deploy in order to fix an interface that is the backbone of their business.</p>
<p>Some brief examples I&#8217;d like to shareâ€¦</p>
<p style="margin-left: 36pt"><strong><em>Example #1<br />
</em></strong></p>
<p style="margin-left: 36pt"><em>Working with a life sciences client to implement Oracle Order Management a few years back, the organization decided to keep their existing mainframe inventory system with the idea of avoiding risk and cutting costs. The consulting group at the time recommended against this decision, but the client continued on and even decided to take on the effort using internal resources.<br />
</em></p>
<p style="margin-left: 36pt"><em>In a nutshell, the core exchange of the interface was centered on the Pick Release and Ship Confirmation processes. Testing was lackluster and didn&#8217;t cover all scenarios such as partial line shipments or order cancelations. More importantly, there lacked a substantial volume test.<br />
</em></p>
<p style="margin-left: 36pt"><em>What resulted at go-live was a disaster. Because of the bugs around partial line shipping, some orders were shipped two, three, and occasionally four times over. It took a team of 10-12 people during go-live to identify the dozen situations that were causing the Pick Release failures and shipping issues. Overall, it had taken a year+ to stabilize the situation and resulted in an exceeded IT budget and sales losses to the client. A team still exists today in maintaining and monitoring this interface.<br />
</em></p>
<p style="margin-left: 36pt"><strong><em>Example #2<br />
</em></strong></p>
<p style="margin-left: 36pt"><em>A publishing organization implementing Oracle decided to build an interface to their existing warehouse system. Aside from its age, this system was a beta version of the vendor&#8217;s product. It was heavily customized and interfaced to dozens of other order processing systems already. Cost and risk were definitely a factor.<br />
</em></p>
<p style="margin-left: 36pt"><em>Results at go-live were also poor. Multiple or no shipments were occurring. Since shipment sets in Oracle were not in synch with the activity that occurred in the legacy system, it caused many issues. An extensive amount of resources were needed to help stabilize the situation. Over time, the client became limited to the amount of functionality that could be used in Oracle. For example, for an order that had several shipping locations, separate orders had to be created for each shipment vs. establishing different shipping addresses at the order line level.<br />
</em></p>
<p style="margin-left: 36pt"><em>Additionally, the client implemented a daily process that &#8220;synchronizes&#8221; the Oracle on-hand balances with Legacy on-hand balances if a delta occurs (scary). Overall, it has taken nearly 2 years to stabilize the situation and currently has resources dedicated to the effort today.<br />
</em></p>
<p>As you can see, clients typically downplay the risk exposed to the rest of the fulfillment process when implementing an inventory interface to &#8220;protect&#8221; the shipping operation. Even worse, these organizations had made the decision to keep the legacy WMS because it was determined that the implementation effort in replacing the system was to costly compared to building the interface. Looking at this short-term, this may be true. But like most system interface projects, the cost of maintaining such a beast can greatly exceed the cost of implementing a new WMS over time (at least based on my experience).</p>
<p>If you&#8217;re an organization that is the process of deciding upon an inventory and shipment interface or a new WMS, I hope you can take the above situations into consideration. In going with the direction of an interface, you must also take into account:</p>
<ul>
<li><strong>Increased Go-Live Risk</strong> &#8211; In case the situation gets ugly, you&#8217;ll need extra time and resources to correct and stabilize the situation. Also will need to factor in any impact to the business and sales it may cause.</li>
<li><strong>A New Department </strong>- The interface itself will be a unique process that will require several individuals who understand and are familiar with the process and include expertise in both the Oracle and Legacy inventory systems.</li>
<li><strong>Difficulty or Inability to Upgrade/Change </strong>- Being that the interface will be a delicate process requiring much involvement from both systems at a technical level, any changes to the table structure on the Oracle side as a result of an upgrade or customization could result in breaking this interface. Likewise, any changes done to the legacy side could also adversely affect this interface. With that said, expect all upgrade efforts to your system to exponentially increase.</li>
</ul>
<p>My position should be pretty clear from all my ranting &#8211; DON&#8217;T DO IT! Or at least if you do, thoroughly evaluate the alternative of implementing a new WMS. Hopefully through the experiences I&#8217;ve shared, you&#8217;ll find that both options are exposed to the same level risk, but that the long term cost benefits of implementing a new WMS will prevail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanthompsononline.com/oracle/2008/01/10/interfacing-oracle-to-your-legacy-wms-a-good-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shipping without Transacting Inventory in Oracle</title>
		<link>http://www.bryanthompsononline.com/oracle/2007/08/01/shipping-without-transacting-inventory-in-oracle/</link>
		<comments>http://www.bryanthompsononline.com/oracle/2007/08/01/shipping-without-transacting-inventory-in-oracle/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 23:27:26 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Inventory]]></category>
		<category><![CDATA[Order Management]]></category>
		<category><![CDATA[Order to Cash]]></category>
		<category><![CDATA[Shipping Execution]]></category>

		<guid isPermaLink="false">http://www.bryanthompsononline.com/oracle/2007/08/01/shipping-without-transacting-inventory-in-oracle/</guid>
		<description><![CDATA[From an Oracle prospective, when I say "Shipping without Transacting Inventory", I mean just that - being able to add a line item to the sales order in Order Management, following through with the pick release and shipment confirmation like a normal inventory item, but avoiding the inventory transactions that result from the shipment...]]></description>
			<content:encoded><![CDATA[<p>From an Oracle prospective, when I say &#8220;Shipping without Transacting Inventory&#8221;, I mean just that &#8211; being able to add a line item to the sales order in Order Management, following through with the pick release and shipment confirmation like a normal inventory item, but avoiding the inventory transactions that result from the shipment.</p>
<p>  &#8221;What&#8221; you say?   Shipping an item without deducting inventory?   Why would anybody want to do that?</p>
<p>Believe it or not, there are certain requirements which make this a viable solution.   For example, your organization may:</p>
<ul>
<li>Periodically ship low costs goods along with your product, such as nuts or bolts, tacks, etc., that would be too costly from an inventory management prospective to track on-hand balance.</li>
<li>Offer services along with the shipped product that, for legal reasons, may need to appear on the shipment documentation.  </li>
<li>Or the service being provided could be related to the shipment itself, which would also entail it appearing on the shipping docs.</li>
<li>Apply charges along with your product that must appear as line items on sales, shipment, and invoicing documentation.</li>
</ul>
<p>If any of these situations apply to your business, it&#8217;s quite possible that shipping without transacting inventory could work for your organization.  </p>
<p>Surprisingly, to make shipping without transacting inventory work, there are only a few configurations that need to take place &#8211; the most important being the item setup.   Essentially, we want to attribute this item so that it&#8217;s not an inventory item but orderable and shippable from an Order Management prospective.  </p>
<p>While there are a number of item attributes that require setup, these settings in particular are important in making our scenario work:</p>
<ul>
<li>Under the &#8220;Inventory&#8221; tab:<br />
o  Inventory Item Unchecked &#8211; This ensures that the Shipping Execution module treats the item like a non-inventory item.<br />
o  Stockable <strong>Unchecked</strong> &#8211; As a result of making the item non-inventory the stockable cannot be checked.<br />
o  Transactable <strong>Unchecked</strong> &#8211; Same situation for this attribute, can&#8217;t be checked if we&#8217;re dealing with a non-inventory item.  </li>
</ul>
<p><img id="image36" title="shot-1.gif" alt="shot-1.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-1.gif" /></p>
<ul>
<li>Under the &#8220;Order Management&#8221; tab<br />
o  Customer Ordered <strong>Checked </strong>- Allows the item to be placed on a sales order in Order Management.<br />
o  Customer Orders Enabled <strong>Checked</strong> &#8211; Simply enables the customer orderable functionality.<br />
o  Shippable <strong>Checked</strong> &#8211; Marks the item as shippable.   This is important in attributing the item as shippable, but a non-inventory item.      </li>
</ul>
<p><img id="image37" title="shot-2.gif" alt="shot-2.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-2.gif" /></p>
<ul>
<li>Under the &#8220;Invoicing&#8221; tab<br />
o  Invoiceable Item &#8211; <strong>Checked</strong><br />
o  Invoice Enabled &#8211; <strong>Checked</strong>    </li>
</ul>
<p><img id="image38" title="shot-3.gif" alt="shot-3.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-3.gif" /></p>
<p>Next, aside from having all the basic Order Management setups in place, it&#8217;s important that the line type being used is assigned to a workflow which contains the shipment activity so that the order follows through the Pick Release and Ship Confirmation process steps.   Oracle generic line workflows such as &#8220;Line Flow &#8211; Generic&#8221; or &#8220;Line Flow &#8211; Generic, Ship Only&#8221; can be used.</p>
<p align="center"><img id="image39" title="shot-4.gif" alt="shot-4.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-4.gif" /></p>
<p>That&#8217;s it!   Pretty simple, eh?   Now that we know how to setup our shippable, non-inventory item and have our basic Order Management setups in place, let&#8217;s test our scenario.</p>
<p>Using an item called ZBULK that I attributed as non-inventory and shippable, I enter a sales order using a line type which I have assigned to the &#8220;Line Flow &#8211; Generic&#8221; workflow.   The &#8220;Customer Order Enabled&#8221; flag of the item allows me to add this item to the sales order.   After we book the order, the line automatically progresses into an &#8220;Awaiting Shipping&#8221; status.</p>
<p><img id="image40" title="shot-5.gif" alt="shot-5.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-5.gif" /></p>
<p>Next, like any normal inventory item, we proceed with the Pick Release of the sales order.   If this were a typical inventory item, the resulting inventory transaction from the execution of Pick Release to the completion of the Move Order would be a sub-inventory transfer from the inventory location of the stocked good to the staging sub-inventory.   And as a result of the sub-inventory transfer the shipping transaction status changes from &#8220;Released to Warehouse&#8221; to &#8220;Staged/Pick Confirmed&#8221;.</p>
<p>However, because the combination of flags we have set on our ZBULK item (&#8221;Inventory Item&#8221; flag unchecked; &#8220;Shippable&#8221; checked), the shipping transaction progresses directly to a &#8220;Staged/Pick Confirmed&#8221; status &#8211; bypassing the sub-inventory transaction that results from the Move Order.   
<table align="left" border="0" cellpadding="0" cellspacing="0">
<tr><td>
<script type="text/javascript"><!--
google_ad_client = "pub-4516530845610319";
//200x200, created 12/11/07
google_ad_slot = "2730876339";
google_ad_width = 200;
google_ad_height = 200;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr>
</table>
This is important to understand because, from a process standpoint, we have skipped all manual picking steps such as the Move Order, pick slip printing, etc. that typically occurs when shipping a regular inventory item.   In skipping these steps, we&#8217;re able to release our ZBULK item without regard to inventory, on-hand balance, etc.</p>
<p>Additionally, the picking steps are skipped regardless of how the &#8220;Auto Pick Confirm&#8221; flag is set during the release.   Under normal circumstances, this flag controls whether the Mover Order transaction occurs automatically or manually and is often dictated by the business process.   In this case, the &#8220;Auto Pick Confirm&#8221; flag has no bearing.</p>
<p>This &#8220;bypass&#8221; of the inventory transaction is more obvious if you refer to the corresponding record within the Shipping Transactions form.   With a typical inventory item, the initial shipment status is usually &#8220;Ready to Release&#8221; with &#8220;Launch Pick Release&#8221; as the next step.   But for our ZBULK item, you&#8217;ll notice that the status is &#8220;Not Applicable&#8221; with &#8220;Ship Confirm&#8221; as the next step.   Again, this is due to the combination of attributes we have set for the ZBULK item.  </p>
<p><img id="image41" title="shot-6.gif" alt="shot-6.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-6.gif" /></p>
<p>Now you may be asking &#8220;If the next step is to â€˜Ship Confirm&#8217;, why are we still releasing the order?&#8221;   In fact, it&#8217;s not required to perform the Pick Release.   You can actually bypass the pick release of this line entirely and proceed directly with the normal ship confirmation steps.   However, depending upon your business process, you may want to incorporate the Pick Release step.   For example, if our order line was part of a shipment set tied to other inventory items, you would require that this line in addition to the other lines of the ship set are released together so that the entire grouping is made available for shipment confirmation.   For the sake of this demonstration, let&#8217;s assume our process requires that we release this item.</p>
<p>After launching the pick release process our delivery line now becomes &#8220;Staged&#8221;; allowing us to proceed with the normal ship confirmation steps.   Like all ship confirmations, the &#8220;Interface Trip Stop&#8221; process is executed either real time or later as a concurrent request.   Typically, the process accomplishes three main objectives:</p>
<ol>
<li>Deducts on-hand quantity and debits Cost of Goods Sold.</li>
<li>Progresses the order line to &#8220;Shipped&#8221; status so that it can progress to the next workflow activity.  </li>
<li>Progresses the shipment line to an &#8220;Interfaced&#8221; status and sets the trip to &#8220;In-Transit&#8221; or &#8220;Closed&#8221; depending on whether you elected to close the trip.</li>
</ol>
<p>For our non-inventory item we&#8217;re shipping, &#8220;Interface Trip Stop&#8221; will also execute, but will only complete steps #2 and #3.   Therefore, our sales order and shipment transactions will progress without executing the inventory deduction or debiting Cost of Goods Sold.<br />
Upon completing the ship confirmation we find that our shipping transaction is now in an &#8220;Interfaced&#8221; status.   From a shipping prospective, the process to confirm the delivery is seamless.  </p>
<p><img id="image42" title="shot-7.gif" alt="shot-7.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-7.gif" /></p>
<p>Additionally, the closure of our order line is also seamless.   Since we&#8217;re using the &#8220;Line Flow &#8211; Generic&#8221; workflow and have our ZBULK item attributed as &#8220;Invoiceable&#8221;, our order line will be set to a &#8220;Closed&#8221; status and proceed to Accounts Receivables for invoicing.</p>
<p><img id="image43" title="shot-8.gif" alt="shot-8.gif" src="http://www.bryanthompsononline.com/oracle/wp-content/uploads/2007/08/shot-8.gif" /></p>
<p>There you have it &#8211; we&#8217;ve successfully shipped an item without generating any inventory transactions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanthompsononline.com/oracle/2007/08/01/shipping-without-transacting-inventory-in-oracle/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
