Abstract:
A method for processing an incoming order for equipment can be provided. A plurality of objects representing environmental factors is read, each object comprising at least one of a required parts list and an excluded parts list. Next, a customer places an order for computer equipment, wherein the order comprises a list of parts. A list of environmental factors is entered by the customer and the list of environmental factors is matched to at least one of the objects. The method can further include comparing the list of parts of the order to the required parts list and/or the excluded parts list of the at least one object. Finally, a record that the order is validated is stored if the list of parts of the order is consistent with the required parts list and/or the excluded parts list of the at least one object.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to commercial ordering processes, and more particularly to improved methods for processing commercial orders using higher levels of detail. 
     2. Description of the Related Art 
     Complex commercial computer systems, as well as other types of equipment, are available in a wide variety of configurations. When ordering complex commercial computer systems, customers are typically provided with a choice of various configurations, including a choice of brand, processor, memory, software, peripheral components and other customizations so as to provide the customer with a product that satisfies his needs as precisely as possible. Environmental and spatial factors of the customer, however, are variables that are commonly overlooked when customer orders are processed, although these restrictions may have significant impact on the parts/subassemblies selected in the configuration. 
     Often, complex computer systems arrive at a customer&#39;s facility only to find that the computer system cannot operate in the customer&#39;s weather conditions or the computer system is too tall for the ceiling height of the customer&#39;s office, for example. An ordered complex computer system may meet the needs of the customer, but if the computer system cannot fit into the customer&#39;s office, the customer&#39;s needs cannot be met. Also, there may be situations where the systems ordered are installed in airborne or water borne vehicles/spaces or other mobile platforms where additional specifications must be met in order to ensure mechanical and functional stability. In these cases, the customer has no option but to return the ordered computer system to the seller and either exchange it for a more appropriate computer system or request a refund. These situations can cause delays for the customer, cause backups in the seller&#39;s order and delivery departments and affect the reported earnings of the seller. Further, the process of exchanging or returning a complex computer system can be time-consuming and labor intensive for both buyer and seller, thereby causing the expenditure of resources for both parties. 
     Therefore, there is a need for a more efficient way of processing customer orders for complex computer systems so as to better accommodate the customer&#39;s environmental factors. 
     BRIEF SUMMARY OF THE INVENTION 
     Embodiments of the present invention address deficiencies of the art with respect to commercial order processing and provide a novel and non-obvious method, computer system and computer program product for processing commercial orders using a great level of detail regarding customer restrictions. In one embodiment of the invention, a method for processing an incoming order for equipment can be provided. The method can include reading a plurality of objects representing environmental limitations, each object comprising at least one of a list of required parts and a list of excluded parts and receiving an order for equipment from the customer, wherein the order comprises a list of parts. The method can further include receiving a list of environmental factors from the customer and matching the list of environmental limitations from the customer to at least one of the plurality of objects. The method can further include comparing the list of parts of the order to the list of required parts and/or list of excluded parts of the at least one of the plurality of objects. The method can further include storing a record that the order is validated, if the list of parts of the order is consistent with the list of required parts and/or list of excluded parts of the at least one of the plurality of objects. 
     In another embodiment of the invention, a computer system for processing an incoming order for computer equipment is provided. The computer system includes a memory for storing a plurality of objects representing environmental factors, each object comprising at least one of a list of required parts and a list of excluded parts. The computer system further includes a receiver for receiving an order for equipment from the customer, wherein the order comprises a list of parts and receiving a list of environmental factors from the customer. The computer system further includes a processor configured for matching the list of environmental factors from the customer to at least one of the plurality of objects, comparing the list of parts of the order to the list of required parts and/or list of excluded parts of the at least one of the plurality of objects, and storing a record that the order is validated, if the list of parts of the order is consistent with the list of required parts and/or list of excluded parts of the at least one of the plurality of objects. 
     In another embodiment of the invention, a computer program product comprising a computer usable medium embodying computer usable program code for processing an incoming order for equipment can be provided. The computer program product can include computer usable program code for reading a plurality of objects representing environmental factors, each object comprising at least one of a list of required parts and a list of excluded parts and computer usable program code for receiving an order for equipment from the customer, wherein the order comprises a list of parts. The computer program product can further include computer usable program code for receiving a list of environmental factors from the customer and computer usable program code for matching the list of environmental factors from the customer to at least one of the plurality of objects. The computer program product can further include computer usable program code for comparing the list of parts of the order to the list of required parts and/or list of excluded parts of the at least one of the plurality of objects. The computer program product can further include computer usable program code for storing a record that the order is validated, if the list of parts of the order is consistent with the list of required parts and/or list of excluded parts of the at least one of the plurality of objects. 
     Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
         FIG. 1  is a block diagram illustrating a network architecture for a commercial ordering system, according to one embodiment of the present invention; and 
         FIG. 2  is a flow chart depicting a general process for processing incoming orders, according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  is a block diagram illustrating a network architecture for a commercial ordering system, according to one embodiment of the present invention.  FIG. 1  shows a customer  102  interacting with a computer  104  to access a network  106 , such as the World Wide Web. The computer  104  may be a personal computer, a server, a workstation, a smart phone, or a personal digital assistant. Also connected to the network  106  is a web server  108  for the seller  110 , which may sell complex computer systems, various types of equipment or any system of related parts with characteristics or attributes interdependent with each other and the environment within which they will be collectively installed or integrated. Web server  108  may be any commercially available web server, such as the IBM HTTP Server available from International Business Machines, Corp. of Armonk, N.Y. 
     According to  FIG. 1 , customer  102  executes a client application, such as a web browser, on computer  104  to access web server  108  for the seller  110  via a network  106 . The user (customer)  102  may make selections for ordering a complex computer system, various equipment or the like and enter additional information, such as environmental restrictions, into his client application, thereby producing an order with seller  110  via the web server  108 . The process by which the order is processed by the seller  110  is provided in greater detail below with reference to  FIG. 2 . Subsequent to the processing of the order of customer  102 , the seller  110  produces a product  112  corresponding to the order and the product  112  is shipped to the customer  102 . 
     An environmental factor can be a spatial limitation of the customer&#39;s target environment for the ordered equipment, which describes the location in which the ordered equipment shall be installed. A spatial limitation may be provided as a measurement description of a room or area, a measurement description of the doorways of a room or building, a ceiling height measurement, a floor plan, a floor load measurement, a floor level description (i.e., ground floor, second floor, etc.), a loading dock measurement description, or a wall/floor material description. An environmental factor can further be provided as a description of a platform on which the ordered equipment will be installed, such as a ship, an aircraft, an automobile, an off-shore oil rig, a submarine, a space ship, a military vehicle, underground, under sea, a space station, or on another planet. An environmental factor can further be provided as a description of temperature, humidity, special armor requirements, special power requirements, atmospheric pressure (e.g., installed at great depth or great altitude) or an earthquake prone area. 
       FIG. 2  is a flow chart depicting a general process for processing incoming orders, according to one embodiment of the present invention.  FIG. 1  provides more detail regarding the process by which an order is processed by the seller  110 , as first described above with reference to  FIG. 2 . 
     In a first step  202 , a plurality of environmental objects are created by an entity of the seller  110 , such as a program executing on the web server  108  or another computer system of seller  110 . An environmental object represents one or more environmental factors (as described above), as well as the requirements and exclusions of the environmental factor. 
     In one embodiment of the present invention, each of the plurality of environmental objects may be represented by a computer programming object, a language mechanism for binding data with methods that operate on that data. In the computer programming paradigm of object-oriented programming, an object is the individual run-time unit that is used as the basic building block of programs. A class is a programming language construct used to group related fields and methods. A class is a cohesive package that consists of a particular kind of metadata. It describes the rules by which objects behave; these objects are referred to as instances of that class. A class has both an interface and a structure. The interface describes how the class and its instances are allowed to interact via valid methods, while the structure describes how the data is partitioned into fields within an instance. 
     In an embodiment of the present invention, an environmental object may comprise an object class indicator, such as “weather,” that indicates the type of object. The environmental object may further comprise an object name indicator, such as “humid” that indicates a sub-type (instance) of the class. The environmental object may further comprise a list of attributes with accompanying attribute values, such as a “humidity range” attribute with a defined value of 60-75 percent humidity. 
     Another example of an attribute with accompanying attribute values is a “prerequisites” attribute that indicates the computer parts that are necessary or required for a computer system to function properly in the environment described by the environmental object. The accompanying attribute values to this attribute may be part numbers, model numbers or other identifiers of the required parts that possess the required physical, electrical or mechanical characteristics consistent with the necessary attributes. Yet another example of an attribute is an “excludes” attribute that indicates the computer parts that cannot function properly in the environment described by the environmental object and are therefore excluded. The accompanying attribute values to this attribute may also be part numbers, model numbers or other identifiers of the required parts. Yet another example of an attribute is a “compatible products” attribute that indicates the computer parts that are compatible with a computer system so as to function properly in the environment described by the environmental object. The accompanying attribute values to this attribute may also be part numbers, model numbers or other identifiers of the required parts. 
     Using the attributes described above, various if-then rules can effectively be implemented. For example, the if-then rule “if the room height is less than 9 feet, then use short cabinets” can be implemented using an environmental object having an object class indicator of “IT storage” and an object name indicator of “9 foot ceiling.” Further, a prerequisites attribute value would be set to “short cabinet” or a part number for a short cabinet. In another example, the if-then rule “if the cabinet is not mounted on the ground floor, then use the anchor bolts for extra stability” can be implemented using an environmental object having an object class indicator of “floor level” and an object name indicator of “on upper floor.” Further, a prerequisites attribute value would be set to “anchor bolts” or a part number for an anchor bolt. 
     In another example, the if-then rule “if the system will be installed on a ship, then stabilization gyros are required and corrosion protected cabinets are needed” can be implemented using an environmental object having an object class indicator of “installation platform” and an object name indicator of “ship.” Further, a first prerequisites attribute value would be set to “stabilization gyros” or a part number for stabilization gyros, and a second prerequisites attribute value would be set to “corrosion protected cabinets” or a part number for corrosion protected cabinets. 
     Returning to  FIG. 2 , in step  204  the customer  102  makes selections on a client application, such as a web browser, so as to place an order for a complex computer system, various equipment or the like with the seller  110 . Although the present invention is directed to orders for complex computer systems, various types of equipment or any interrelated parts, for exemplary purposes the order discussed with regard to  FIG. 2  shall be an order for a complex computer system. The selections provided to the customer  102  allow the customer  102  to select components, parts, entire systems and different configurations of the aforementioned. Each of the selections has a predefined “part” object associated with it. 
     In step  205 , a predefined “part” object corresponding to the computer part or system selected by the customer in step  204  is selected. In an embodiment of the present invention, a part object may comprise an object class indicator, such as “cabinet,” that indicates the type of object. The part object may further comprise an object name indicator, such as “3400” that indicates a sub-type or model number of the object. The part object may further comprise a list of attributes with accompanying attribute values, such as a part number attribute (that provides a number for the part described), a prerequisites attribute (that describes the required components for the part to operate or to be successfully installed), an excludes attribute (that describes the components that cannot be included with the part), an applicable product attribute (that describes the components that are compatible with the part) and a not-compatible attribute (that describes the components that are not compatible with the part). 
     In step  206 , the customer  102  may enter the environmental factors particular to his location. This may be done via a web browser or other mechanism similar to the placement of an order in step  204 . As explained above, an environmental factor can be a spatial limitation of the customer, a description of a platform on which the complex computer system will be installed, a description of temperature, humidity, special armor requirements, special power requirements or other special environmental attributes such as atmospheric pressure or those necessary for an earthquake prone area. 
     In step  208 , the environmental factors entered by the customer  102  are mapped to an object from the plurality of environmental objects described in step  202 . Step  208  comprises finding an object in the plurality of environmental objects that best matches the environmental factors entered by the customer  102 . This matching step may be executed by reviewing the values of the environmental factors entered by the customer  102  and searching for those values in the plurality of environmental objects. The object that possesses all of the values of the environmental factors entered by the customer  102  is taken as the matching object. If all the values of the environmental factors entered by the customer  102  are not found in one of the objects, the best match, or the object with the highest number of matching values, is taken as the matching object. 
     In step  210 , the matching environmental object, which represents the environmental factors entered by the customer  102 , are compared to the part object selected in step  205 . In this step, any attributes of the environmental object that describe parts that are required or excluded (such a prerequisites attribute, an excludes attribute, a compatibility attribute, a non-compatibility attribute, and an applicable product attribute, as described above), are read. 
     Next, the read attributes are compared to the parts enumerated in the part object selected in step  205  and inconsistencies are meted out. For example, if an attribute of the environmental object defines a part number “450” as a required part, then the part number “450” is sought in the part object. If the part is found, then the order is valid so far. Otherwise, the order is not valid. In another example, if an attribute of the environmental object defines a part number “460” as an excluded part, then the part number “460” is sought in the part object. If the part is found, then the order is not valid. Otherwise, the order is valid. In another alternative, the parts excluded using an excludes attribute can affect the choices provided to the user  102  when making selections in step  204 , such that the excluded parts are not provided as a choice. 
     In step  212 , it is determined whether the order placed by customer  102  is consistent with the matching environmental object, according to the comparison of step  210  above. If the result of the determination of step  212  is positive, i.e., the order is consistent, then control flows to step  214 . If the result of the determination of step  212  is negative, i.e., the order is not consistent, then control flows to step  216 . In step  214 , the order is validated and the order continues to be processed. In step  216 , the order is not validated due to the inconsistencies found during the comparison of step  210 . In step  218 , an error message detailing the invalidity of the order is provided to the customer  102  and/or the seller  110 . 
     Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, offerings that include other services and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
     For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. Examples of a propagation medium include a wireless transmission and receipt from one computer-readable medium to another. 
     A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.