Professional Documents
Culture Documents
setups as orders keep rolling into the Production system as shown in Fig 1.0 below. Batch Item Uploads and manual Item entry via Oracle Forms are also part of the process.
Until early 2009, using a more traditional approach, customer Inventory Item setups were done in the Oracle E RP via Oracle Standard It em Import mec hanism using Interface Tables and Scheduled Conc urrent Programs. Rapidly increasing set of new Customer Business programs and revisions to existing programs began choking the It em Import process and soon this traditional approac h was becoming an overall Order Fulfillment process bottleneck. Further, the manual uploads that were used depended totally on the users ability to identify the rec ords and the Inventory Item supply chain attributes required by a particular business program correctly and creat e a file and drop it to the Item Import process (Batch Item Upload as shown in Fig 1.0 above). As you can imagine this process has a good amount of scope for error (during manual dat a file creation) and pot entially setup incorrect Item attributes. This White paper presents a new IT initiative implemented at WWT that was aimed at significantly reducing the complex processes that encompass entire Item Creation and Maintenance and make the process very scalable and ultimately help improve the overall Order Fulfillment and Inventory processes. The new design also incorporates Custom Setup Forms (setting up Process Metadata) that reduces errors in the process significantly. The paper elaborates the new design under the sections below.
System Objectives
The Inventory Item process that was being us ed depended on certain set of hard coded rules written in the inbound order process and some table level database triggers, developed and maint ained per customer program requirements. For instance to set the serial/asset control the dependency was on the Item template attached to the Inventory Organization in which the item was getting created or the code had a logic that catered to certain business programs. Extending the functionality required code changes and time invested in regression testing. Handling new item setup requirements based on the
COLLABORATE 10 OAUG Forum Copyright 2010 by Radhe Lanka Page 2 of 8
Customer business rules began affecting the overall productivity of the Inventory and Order Fulfillment Processes. And this further became more concerning wit h the influx of new complex customer programs from a leading PC manufacturer. In certain cases users were required to manually setup items and or change the setups controls aft er the items were import ed into Oracle via Standard Item Import process. Enhancing the Item creation process had become a call of the hour to address these concerns. A new solution was implemented to handle Real Time Item Creation, aut omate complex setups like Serial/Asset control, Substitute Items, Cat egories, using PRE and POS T Item creation rules. One of the design goals was to drive the entire logic based on Custom Setups and use Oracle Inventory Item API calls, instead of depending on the batch Item Import process. Making the design highly scalable, of course was a prime part of the agenda too.
Page 3 of 8
For instance Customer A needs Asset Tagging rules to be set around Item Setups and this in turn could mean something like creating Manufacturer Part Number records in Inventory tables. Another Customer B would require its parts be setup under multiple Inventory Organizations with some having serial control and some Asset tagged also. These could be easily setup and turned ON or OFF based on the newly designed as you will see below
ERP Setups The entire architecture has been designed to work based on a Process Metadat a (Custom Setups) definition to handle setups and drive the whole Inventory It em creation and Maintenance process as needed by the business programs. The Process Metadat a has been designed to hold business rules under 3 Custom tables as described below. Busine ss Programs Setup: This is the Primary Setup component within the Proc ess Metadata which uniquely identifies a Customer Business Program (or even a Project within a program) under the key element called Org Destination Code. The Description column (as you see in the table below) holds the necessary description attributed to the Customer Program. This lookup also holds some Generic elements that work as common elements designed to work across all business programs.
Org Destination Code WWT_1 WWT_2 WWT_3 WWT_4 Description ALL ITEMS FORM ITEMS ORDER IMPORT CUSTOMER XYZ Source GENERIC FORM COP Stop on Failure? Y N N N Delete Interface N N Y N
Busine ss Programs to Inventory Organizations Mappings: This Process Metadat a lookup assigns the key element Org Destination Code, from the main Customer Program lookup above, to a list of Child Inventory Organizations and default Item templates. Adding a new Invent ory Org or removing one is just a matter of end dating the lookup dat a or disabling it by setting enabled flag attributes. The table below gives some of the columns that have been included as a part of this Process Metadata look up table.
Org Destination Code WWT_4 WWT_4 WWT_4 WWT_4 WWT_N WWT_N Inventory Organization Code 01 08 24 29 01 99 Item Template Enabled? Y Y N N Y Y
Busine ss Program to Item Supply Chain Attribute s Mapping: This lookup handles all the Pre and Post Item processing business rules and setups that are required per customer program and per Inventory Organization that the program needs the items assigned to. The subsequent sections detail the usage of the Pre and Post assignments in the overall Item creation and maintenance process, that are setup in this lookup
Org Destination Code WWT_1 WWT_1 WWT_1 WWT_4 Process Type PRE-PROCESS PRE-PROCESS POST-PROCESS POST-PROCESS Seq 10 20 10 10 WHERE Clause Program Unit Clean_Items eStore_Check Set_Category Set_Assets Stop on Failure Y Y N N Enabled? Y Y Y N Page 4 of 8
ORG=101 ORG<>101
WWT_N WWT_N
POST-PROCESS PRE-PROCESS
10 10
Set_SubItems Set_ATO_Part
N Y
Y Y
The above three process metadata lookups group is designed to hold all the necessary setups that Items will need during the course of their creation and maintenance. These will get used in Order Import Defaulting Rules, Order Cleanup and Oracle Items Form and also during Mass Item Uploads. Any program that needs a new set of rules can be added to these lookups.
Technical Aspects
The entire gamut of Item Creation functionality is provided by a set of PL/SQL programs that can be invok ed with a large range or parameters and the core logic is driven based on the process metadata lookups listed in the previous section. Object Types have been utilized in the packages to give flexibility in processing dynamic and static SQL statements either passed via parameter calls or via Process metadat a setups. Object Ty pe is a physical definition of record in the database. Table of Object type is a physical definition table of rec ords in the database. Both these are utilized in item creation because of the support to SQL on Table of Object type (both Static and Dynamic). The data passed int o the Item Creation process in the form of Table of Objects facilitates the SQL joins directly (eliminating the need of looping and parsing before evaluation) For example S elect * From TABLE (CAS T ( p_it em_tbl AS wwt_item_tab_type)) Here p_item_tbl is inbound data and wwt_item_tab_type is the physical definition of the table of objects in the DB.
Page 5 of 8
The whole process works using four sub-processes as shown in the Fig 3.0 above. Step 1 - Rec ord Validation and Child Org Explosion Step 2 - Pre-Process Execution Step 3 - Item Creation/ Update via Oracle API Calls Step 4 - Post-Processing and Response Applications that require Item Creation and Maint enance make calls to a Core Package Process Items that takes the execution through the aforementioned sub processes. However there is a great provision within the Process Items call where the source application can request only a particular sub-process execution. For instance a parameter Sub Proc ess Stage has been included in the design to allow for such specific requirements. This is particularly useful in instances like Item Maintenance where items pre-exist and only some post-Processing (assigning Catalogs or creating Approved Supplier Lists) is required. Similarly there could be a requirement where only the item needs to be creat ed in a new inventory org and just the API call needs to be execut ed. The Sub Processes are discussed below. Validation and Child Org Explosion Sub-P roce ss In this sub-process the Process Meta Data, where all the Business Programs are setup to utilize the item creation process, gets used and the exec ution goes on to select all the inventory organizations and the associated It em Templates setup that are required by the process requesting It em Creation. A record set is built here based on the Org Destination Code parameter (shown in tables above under section ERP Setups) passed to the Proc ess Items code. The item is exploded into multiple invent ory item records beginning with the Master Org record and then child records. Special design considerations have been put into the logic where if the calling program sends only a particular Inventory Org, that overrides the Org Explosion process and just considers that inventory org for all item creation processing. If the Master Org is sent or if the Inventory Org parameter is left blank in the call, the org explosion happens and the child orgs get included. Pre-Process Execution The Pre-Process handles all pre-item creation default rules that the source application requires and the entire set of rules are fetched from the Lookups as displayed in tables under the section ERP setups. Rules like Serial Control Setup, Item KFF Segment Rules (for instance a leading Networking Products company business program requires the items to be setup as XY Z under inventory item segment 4), Unit of Measure rules, Item Segment cleanup (cleaning up invalid characters from the Description and the actual KFF segments) and several others can be setup under pre-processing setups which get executed sequentially, thereby preparing the item records with all the necessary functionality. Some of the functions that are to be ex ecuted for ALL items regardless of the calling program request are included in a special Pre-Process package, referred to in the Meta Data setups as GENE RIC. Here is where functionality like Item KFF Segment Cleansing, Description Column Character truncation (if exceeding the limit of 150 characters) etc occur. If multiple Pre-Processing steps are included in the Setups, the order of execution is GENERIC first, Source Program Specific Next and then lastly the Lookup Parameter Specific.
Item Creation/Update via Oracle API Calls This stage is where the Records sets that are prepared for item creation/updat e are submitted to Oracle via the Standard API call - ego_item_pub.process_i tem. Based on the parameters that were set by the source application that makes calls to the main package, the corresponding Item attributes are set and inventory organizations/templates assigned and the It em API creates or Updat es the items as necessary. Return messages from the API call are captured and stored in variables to be later referenced in the subsequent sub-process and then the response is sent back to the calling application.
COLLABORATE 10 OAUG Forum Copyright 2010 by Radhe Lanka Page 6 of 8
Post-Proce ssing and Re sponse Once the Data Validation, Inventory Org Explosion, Pre-Proc essing, Item Creation via API are complete the process then proceeds to execute the Post-Processing Steps. Here the setups again dictate what is required to be ex ecuted for a particular calling application. Several features can be added to the item definition here. For Instance S etting Custom Asset Controls, enabling MFG Part Numbers, Assigning to Catalogs and Categories, Building Item Relationships (Substitute Items, Reciprocal Parts etc) can be done. All that can be achieved after an Item has been created can be handled via the Post- Process execution steps.
Key De sign Consi derations One of the key parameters/setups that has been included is Fail on Error. When the Process Items package is executing this setup indicates if the control can move to the next step in the pre/post processing steps if there is an error in the current step. This works when the current record is getting processed for item creation. Then there is a global Business Program level setup Fail All Records which when set to Y indicates if for a set of records being submitted if a particular stage in Pre/Post processing fails, then fail (a ROLLBA CK gets issued within the PL/SQL Code) the entire set of rec ords getting created. In the Oracle Master Items Form a Custom Trigger has been included to fire during the master item creation proc ess. When the user creates a Master Organization record the custom Post Item Insert trigger picks the record and proceeds with exploding Child Orgs, perform Pre-P rocessing, submit API Calls and finally complete Post-Processing. Internally the Trigger Fails the Master Record record and takes over control from the form. This way any Pre and Post Item Rules that have been setup get utilized and
Page 7 of 8
Now, Order Import places It em Requests via the new package calls and the items are created real time and the results are seen right away where Orders are imported right after the item creation call. Child Organizations get assigned, serial control, asset controls are set and the Items and Orders are ready to be transacted. 2. Mass Item Upload: Existing Mass Item uploads run based on the Oracle Item Import process using the Int erface tables. This process is effective although is limited by the parameters that are given to each rec ord in the interface tables and then running validation programs and another set of post item programs that handle setups around categories/catalogs/relations hips etc. With the new design and functionality offered mass item loads could us e the main Process Items calls offered by the new package. However we have obs erved that passing a large number of item records to the package is causing performanc e issues where the AP I call is slow. This is currently being addressed. 3. Oracle Items Form: The new item creation logic has been included in the Oracle Items table Mtl_System_Items custom On-Ins ert Trigger. This trigger will be used for Child Org Item Creation and give a handle to all the P re and Post Processing procedures associated with the current program. The Customer Program specific Org Destination Code reference is entered into DFF Attribute. 4. Import Order Cleanup Utility: Customer Purchase Orders that ent er into WWT systems are staged first into a set of Custom Tables. Several defaulting rules are applied and the records are submitted to Item Creation before the Order Import process kicks in. Any errors that are enc ount ered during this import process are seen via this custom utility called OCU (Order Cleanup Utility). Here the users can invok e the entire Item Creation logic to create items via the custom tool and set attributes as the business program needs. Behind the scene the Process Items package that handles the whole process kicks in and does its magic!!!
Conclusions
With the new process handling item setups via AP I call instead of Item Import concurrent programs and enabling business programs via custom Process Metadata setups has significantly improved our Inventory Setups and thereby Order Fulfillment processes. Setting up new customer programs or changes to existing ones from the Inventory Setup Perspective are no longer a concern to our business managers and IT Teams. Earlier the issues were around how to manage new setups and at the same time not affect existing setups (caused due to code changes). Overall we have seen the benefits below from the new initiative. Relieved Item Import run load on the system (which was running about 18000 times per week). All Item Maintenanc e logic can be identified under one main process and a set of custom setups. The modular design implemented has enabled us to make changes very localized to a particular business program or even a set of specific items and not affect the whole process. Improved Processing Time - Inventory Item Creation and Child Orgs assignments. Reduced Errors via Standard It em Creation Form. Our Logistics team deals with a lot of duplicate Item Child Org errors today. These got addressed. Real Time Item Creation - User sees Errors on the Form per Item, instead of the Logistics team that is used correcting them, seeing them in Interface tables.
Page 8 of 8