Design and Implementation of Inventory Domain for Enterprise Resource Planning Using SOA and Workflow Approach

Enterprise resource planning (ERP) is a business management system which integrates several domains of enterprise business processes. Among several ERP domains, inventory is one of the basic requirement domains of an enterprise. Inventory holds three important functionalities, i.e., stock request, delivery, and stock control. In this paper, we have designed inventory domain using Service-oriented Architecture (SOA) to accommodate data communication between inventory domain and other ERP domains by providing services and employed Workflow approach to automate business process in inventory domain. The implementation confirms that our design has successfully accommodated the business processes in inventory domain. In term of technology, Workflow approach is beneficial to develop inventory domain application which is responsive to sub business process changes. In addition, the usage of SOA makes the developed inventory domain application is capable to provide services to be consumed by the other ERP domains. Keywords inventory, ERP, SOA, workflow.

I. INTRODUCTION 1 nterprise Resource Planning (ERP) [1,2,3] is a software package which is designed to coordinate all enterprise resources, information and activities. ERP which is popularly used as a basis for the best practice and best management process is composed of several domains/departments. In a manufacturing company the departments are inventory management, human resource, sales, production planning, supplier relationship management (SRM), customer relationship management (CRM), finance and accounting, etc. The integration of domains within ERP is depicted in Figure 1. Since ERP coordinates the company resources, information and activities, it accommodates all functionalities of its departments in order to manage the company productivity and efficiency.
Inventory domain is one of the important domains in a manufacturing company. Besides, it can reflect the performance of the company since it determines the balance between inventory investment and customer service.
Good inventory management is important to minimize company's cost. To be able to minimize cost, company can reduce stocks in the inventory to some points. However, it can interfere production process that leads to the lack of finished product and customer dissatisfaction.
As one of ERP domains, inventory domain manages inventory circulation -in and out of the company and also stock distribution to customer. It controls incoming inventory to make sure that there is no excess inventory and prevents excessive expenditure that might interfere production process. In order to maintain inventory balance, generally, inventory domain consists of integrated sub domains, i.e., request, delivery, and stock control. In addition, inventory domain is associated with other domains in ERP such as production planning, customer relationship management and supplier relationship management by providing some information for above mentioned domains. The relation between inventory domain and other ERP domain is shown in Figure 2.
In term of software usage, company always consider how to manage company cost effectively so that it can minimize application management cost. Software as s Service (SaaS) comes as a solution for that problem. By implementing software design well, using SaaS [4] is beneficial without dealing with complicated details and high cost potential from providing hardware infrastructure and supporting application.
In this paper, we have developed a web based inventory domain for ERP using SaaS method. To simplify data communication between inventory and other ERP domains, we have developed Inventory domain using Service Oriented Architecture [5] and Workflow approach in development stage [6].
The rest of the paper is organized as follows. Section 2 presents domain analysis in inventory domain, followed by domain design in section 3. Finally, conclusion is given in Section 4.

II. DOMAIN ANALYSIS
Inventory domain consists of three functionalities to maintain inventory stability. There are stock request, delivery and stock control. The functionalities are discussed below.

A. Request
It is used to make inventory requests. This functionality is assigned to maintain the availability of the inventory in the warehouse in order to make the company operates unimpeded. Request functionality controls inventory request until it is delivered by inventory staff. Figure 3 describes request process as detailed below. 1. Inventory staff makes purchase request (purchase order).

Inventory staff sends purchase request to Supplier
Relation Management (SRM) domain.
3. If the condition of requested items is appropriate, it is stored in the inventory. 4. If defected items found, the item is returned to the supplier (purchase return).

B. Delivery
Delivery functionality deals with transaction service expenditure from the inventory. This transaction is performed after sales is succesfully done (sales is addressed by Customer Relation Management (CRM) domain). Delivery consists of two processes, i.e., delivery order and sales return. Delivery order is a request from CRM domain to deliver products to the customer, while sales return is a mechanism of returning products from customer to the company. As shown in Figure 4, delivery process can be detailed as: 1. Sales staff makes delivery order. 2. Inventory staff checks delivery order from sales staff. 3. Inventory staff approves items to be delivered. 4. If customer receives defective items, sales staff records the name and the number of the items to be returned (perform sales return). 5. Inventory staff matches data from sales staff and number of defective items received by customer. 6. Inventory staff approves that defective items have been accepted then put the items in defective section.

C. Stock Control
This business process monitors stock condition in the inventory. Checking processes products circulation activity records (item balance), data synchronizing between system and real situation (stock adjustment), and stock management. Those processes are explained below.

Item Balance
This process records all transaction activities in the warehouse, including purchase order, production request and receiving, issued material, delivery order.

Stock Adjustment
Data stored in the system might not equal to the real condition. This can happen when the items stored in the warehouse is damaged or decay so that is it reduced without any transaction. This situation can be handled by stock adjustment process.

Stock Management
It keeps the stability of the inventory. To be able to do so, it needs some functions related to the number of the items to be requested economic order quantity, reorder point and minimum stock in the inventory (safety stock). Economic order quantity (EOQ) is a calculation of number of the items to be requested so that it has economical cost. EOQ answers the question of what quantity of the items to be requested is to obtain the cheapest price. EOQ equation is shown in equation (1).

A. Architecture Design
Inventory functional domain is a web based application developed using Microsoft .NET technology [6,7,8,9]. Inventory domain uses a relational database stored in Microsoft SQL Server [10]. The inventory domain has four connected layers, i.e., data access layer; business logic layer consists of service and workflow layer; application layer; and presentation layer as depicted in Figure 5.
Data access layer connects the inventory application with the database. Service layer stores software logic that will be used in upper layers as Windows Communication Foundation (WCF) service objects. Workflow layer contains software logic that will be used in upper layers as Windows Workflow Foundation (WWF) workflow objects. Application layer stores software logics and is formed as methods which facilitates data transaction between lower layer and presentation layer. Meanwhile, presentation layer provides the interface to application user.

B. Workflow Design
Workflow is used to address sub business process of inventory domain which is easily changed. It also composes of several services to accommodate data communication between inventory domain and SRM, CRM and production planning domains.

1) Assign Item Workflow
Assign item workflow handles the recording of stock to be taken out from inventory. This workflow ensures every ordered item is recorded so that we know in which rack it is placed when the product is going to be taken out. This workflow is used in sales order subprocess by CRM domain, production order subprocess by production planning domain and item transfer subprocess by inventory domain. Figure 6 shows how assign item workflow works.

2) Issued Item Workflow
Issued item workflow handles the steps of taking the products from the inventory, as shown in Figure 7. The product to be taken out is the product listed in the rack of ordered product. This workflow is used in delivery order and item transfer sub process by inventory domain. It is also used in issued item sub process by production execution domain.

3) Item Balance Calculation Workflow
Item balance calculation workflow is used to calculate the number of stored items in the inventory, in which the calculated data is obtained from item balance transaction list. The workflow as depicted in Figure 8 is used by issued item and assign item workflows to determine whether item transcation is occurred. This workflow is also used to compare item balance between inventories. 4) EOQ, Reorder Point and Safety Stock Calculation Workflow Figure 9 depicts economic order quantity (EOQ), reorder point and safety stock calculation workflow which is used to find the stock estimation in the inventory.

5) Item Balance Workflow
Incoming stock to the inventory is recorded in item balance workflow. The recording includes when the products are still in order and when the products are finally delivered to the inventory. This workflow is used in purchase order sub process by SRM domain, production request sub process by production planning domain and batching and item transfer sub process by inventory domain. The detailed step of item balance workflow is presented in Figure 10.

6) Sales Return Workflow
The recordings of returned products are handled by sales return workflow. Returned products from customers are then listed under defected product and stored in the inventory. Sales return process is shown in Figure 11. 7) Product Labelling Workflow Product labelling determines how to place a product in a specific rack in the inventory so that it leads to efficiency of searching products and to avoid product placement redundancy. Product labelling workflow is presented in Figure 12.

C. Service Design
To simplify data communication of inventory domain with CRM, SRM and production planning, we have developed some service as mentioned below. 1. Service to obtain product information. 2. Service to obtain stock information in the inventory of branch office. 3. Service to obtain a list of rack in which a product is placed. This service is used when a product is going to be taken out from the inventory. 4. Service to obtain ordered product by CRM domain in sales order process.
5. Service to obtain certain product data requested by manufacturing domain. 6. Service to update item balance. 7. Service to update item balance by batch (product code). 8. Service to insert new rack detail. 9. Service to insert new receiving product based on purchase order from SRM domain. 10. Service to insert new receiving product detail based on purchase order and related receiving product recording. 11. Service to insert new product label. 12. Service to update purchase request detail status. 13. Service to record returned product issued by CRM. 14. Service to calculate EOQ.

IV. CONCLUSION
In this paper, analysis and design to optimize business process of inventory domain in ERP are discussed. Since inventory domain performs data communication with other domains, in which other domains need some information from inventory domain to be further used, we design the inventory domain application to provide services to be consumed by related domains. Since some sub business processes of inventory domain is customizable, we have added it into account.
The design has been confirmed with implementation using SOA for providing services used by other ERP domains and Workflow for developing the customizable business process which is responsive to changes.