Traditional Enterprise Resource Planning (ERP) software provides users with generic versions of entities such as vendor, customer, product/service, contract, and management structure. A user can utilize the provided generic entities to build ERP models i.e., ERP representations of organizations (ORGs). A major problem of traditional ERP software is that the user of the traditional software has to invest significant amounts of labor, money, and time to customize the pre-packaged generic entities to simulate a real-world organization. Specifically, the user has to define various attributes for every entity, define the relationships between the entities, and define the business rules pertaining to the entity relationships.
a) and 5(b) illustrate modification of software based on the type of user in an embodiment.
Embodiments may be discussed in systems and processes to efficiently create and model ERP representations of an organization (ORG). In particular, embodiments of the present invention pertain to a feature for presenting predefined ERP entities to a user via software. The user may instantiate (or create) one or more of the presented entities. The software may present the user with predefined dimension types and available dimension values for the instantiated entity. The user may select/assign values to the dimension types, and as a result, the available values for other dimension types of one or more instantiated entities may decrease.
In an embodiment, certain dimensions of the entity may affect the possible values which can be assigned to other dimensions of the entity. In an exemplary embodiment, vendor company 201, may be assigned a value of “Germany” for the dimension country 211, and “pharmaceutical industry” for the dimension industry 212. Germany may have laws which restrict the number of employees and market capitalization of pharmaceutical companies, and thus, the possible values which can be assigned to the entity, vendor company 201, for dimensions size 213 and market capitalization 214 may be limited to a particular range.
In an embodiment, the values assigned to a first set of dimensions of an entity may restrict the values which may be assigned to a second set of dimensions of that entity to such a degree that the second set of dimensions may have to be assigned a single default value. For example, in an embodiment, the vendor company 201, may be a pesticide manufacturer (dimension 212) in the United States (dimension 211) which produces toxic fumes in the process of manufacturing the pesticide. As a result, laws may prohibit the company from being located anywhere but an industrial zone (dimension 215).
In an embodiment, values assigned to dimensions of one or more entities may affect the values which may be assigned to the dimensions of another entity. For example, the dimensions of a contract 203 between the vendor company 201 and the customer company 202 may be affected by the dimensions of the vendor company 201. In an embodiment, the vendor company 201 may be a bank (dimension 212) incorporated in Switzerland (dimension 211). Since the vendor company 201 is a Swiss bank, the confidentiality clause (dimension 216) of the contract entity 203 may mandate that the Swiss bank cannot disclose any information about the account in response to a request by a third party, unless very specific criteria are met by the request. On the contrary, if dimension 211 is United States, i.e., the vendor company 201 is an American bank, the confidentiality clause (dimension 216) may not be as rigid as a Swiss bank's confidentiality clause.
In a further embodiment, the relationship between one or more entities may affect the values which may be assigned to the dimensions of another entity. For example, the dimensions of a contract 203 between the vendor company 201 and the customer company 202 may be affected by the relationship between the vendor company 201 and the customer company 202. In an embodiment, the vendor company 201 may be a car manufacturer (dimension 212) incorporated in India (dimension 211). The customer company 202 may be a car retailer (dimension 219) also incorporated in India (dimension 219). In India, a best practice (or common practice) may exist in the car industry to settle disputes between car manufacturers and car retailers through arbitration (a form of alternate dispute resolution). Therefore, the contract 203 may specify mandatory arbitration as part of the alternate dispute resolution clause (dimension 217).
In an embodiment, values assigned to dimensions of one or more entities may affect the existence of one or more other entities. For example, the existence of a contract 203 may depend on the dimensions of the vendor company 201 and the customer company 202. In an embodiment, the vendor company 201 may be incorporated in country A (dimension 211). Customer company 202 may be incorporated in country B (dimension 218). There may be an embargo imposed on country B by country A, and thus laws in country A may prohibit business transactions between country A and country B. Consequently, there may be no legal contract 203 between vendor company 201 and customer company 202.
In an embodiment, 1) the various entities of an organization (ORG), 2) the different possible dimensions and dimension values of the various entities, 3) the various business rules associated with the entities and entity relationships, and 4) the constraints imposed by dimensions of entities and relationships between entities as described in the aforementioned exemplary embodiments may be built into computer software. Therefore, a user of the software does not need to build ERP representations of one or more organizations from scratch, but can instead utilize the predefined information from the software.
In an embodiment, the software may allow the user to easily define attributes of an entity by presenting the user with a set of dimension types 420 pertaining to the entity. For example, the software may present the user with dimensions country and industry 421 pertaining to a vendor entity 411 upon instantiation of the vendor entity 411 via the software. In an embodiment, the software may present the user with predefined values for the dimensions. For example, the country dimension for vendor 411 may include values such as Germany, France, India, United States, and Canada. The industry dimension may include values such as insurance, wine, coffee, automotive, and computer. In an embodiment, some dimensions may include sub-dimensions. For example, the computer industry dimension value may include sub-dimension values such as software and hardware. The sub-dimensions may then other sub-dimensions accordingly based on the granularity needed.
In an embodiment, if certain values for one or more dimensions of an entity are selected via the software, the available value ranges for other dimensions for that entity may decrease. For example, if the user sets the value of the industry dimension of vendor 411 as coffee, then the possible values for the country dimension of vendor 411 may decrease since some countries may not have any vendors that sell coffee. In an embodiment, if certain values for one or more dimensions of an entity are selected via the software, values may be assigned automatically to other dimensions of the entity. For example, if the user sets the value of the industry dimension of vendor 411 as cement, and the country dimension of vendor 411 as country A, a zone dimension of vendor 411 may automatically default to industrial since country A may have regulations requiring cement vendors to be located in a particular zone (i.e., industrial zone in this example).
In an embodiment, relationships 430 between entities and/or dimensions may be predefined in the software. For example, upon creation (instantiation) of a vendor 411 in the coffee industry, the software may automatically suggest or link the coffee industry vendor entity with an existing coffee industry customer entity. In an embodiment, if there are no existing customer entities, the software may automatically create a customer 412 in the coffee industry, and establish a relationship between the vendor 411 in the coffee industry and the customer 412 in the coffee industry.
In an embodiment, the software may restrict the creation or modification of relationships between entities based on the values of particular dimensions of the entities. In an embodiment, the software may only allow the user to create relationships between entities with compatible dimension values. For example, there may be three existing entities. The first entity may be a vendor 411 in the car industry, the second entity may be a vendor 411 in the wine industry, and the third entity may be a customer 412 in the car industry. The software may therefore only allow a relationship between the first entity and the third entity since the industries of the first and third entities are compatible.
In an embodiment, if certain values for one or more dimensions of a first entity are selected via the software, the available value ranges for other dimensions of a second entity related to the first entity may decrease. In an embodiment, if certain values for one or more dimensions of a first entity are selected via the software, values may be assigned automatically to dimensions of a second entity related to the first entity. For example, country A's automotive industry vendors may only specialize in hybrid cars. Thus, if the user sets the value of the industry dimension of vendor 411 as automotive, and the value of the country dimension of vendor 411 as country A, the product type dimension pertaining to the product/service entity 413 may be automatically set to hybrid car.
In an embodiment, business rules 440 based on relationships 430 between entities and/or dimensions may be predefined in the software. For example, an user may create a vendor 411 with an industry dimension of computer hardware, and a country dimension of Japan. The user may create a customer 412 with an industry dimension of computer hardware and a country dimension of United States. The user may establish a relationship between the vendor 411 and the customer 412. The computer software may then automatically, or based on input from the user, generate business rules pertaining to the created entities and the relationship between the entities. For example, the software may generate rules for reminders (dunning) for payment of goods sold to the computer hardware customer. In an embodiment, the generated rules may be created from rules which are already predefined in the software. The software may be preloaded with all rules pertaining to different possible combinations of entity dimensions and relationships between entities/dimensions. The rules predefined in the software may mirror best business practices or customary business practices in various industries.
In an embodiment, although the software may initially contain predefined information about entities, dimensions, relationships, and business rules as described above, the user of the software may modify the predefined information in the software to fit the needs of the user. In an embodiment, the user may use a combination of the predefined information in the software and information modified/added by the user.
a) and 5(b) illustrate modification of software based on the type of user in an embodiment of the invention. In an embodiment, the manufacturer of the software may be one of many sellers of the software. Software manufacturer 510 may sell the software to software reseller 520. Software reseller 520 may then sell the software to another software reseller 530, and so on. The software may ultimately be sold to a software user 540. The software manufacturer 510 may tailor the software to the needs of software reseller 520 by creating the software with entities, dimensions, relationships, and business rules pertinent to software reseller 520. Software reseller 520 may then modify the predefined information in the software to tailor it to software reseller 530, or to a software user 540.
For example, in an embodiment, software manufacturer 510 may be the company SAP which creates the software. Software reseller 520 may be a software distributor such as IBM. SAP 510 may sell the software to IBM 520, and IBM 520 may then sell the software to an end user of the software 540, a small local Indian bank which only engages in business in India. SAP 510 may tailor the software so that it only includes the information relevant to the possible clients of IBM 520. The clients of IBM 520 may be from 50 countries in the world. Therefore, SAP may tailor the software to include entities, dimensions, relationships, and business rules only relevant to those 50 countries. However, prior to selling the software to the bank in India 540, IBM 520 may remove any information pertaining to countries other than India. In an embodiment, IBM 520 may include additional information to the software to accurately reflect entities, dimensions, relationships, and business rules relevant to the organization of small local Indian bank, and/or best practices (or common practices) in the Indian banking industry. The local Indian bank 540 may then use the software as shipped from IBM 520, or modify the information in the software as needed. In an embodiment, there may be one or more resellers such as software reseller 530 between IBM 520 and the local Indian bank 540.
In an embodiment, the software deployment described in the context
A person having ordinary skill in the art will appreciate that while internal systems 630 and external systems 650 are included in
Each of the systems in
In an embodiment, memory 613 may contain different components for retrieving, presenting, changing, and saving data. Memory 613 may include a variety of memory devices, for example, Dynamic Random Access Memory (DRAM), Static RAM (SRAM), flash memory, cache memory, and other memory devices. Additionally, for example, memory 613 and processing device(s) 612 may be distributed across several different computers that collectively comprise a system.
Database 611 may include any type of data storage adapted to searching and retrieval. The database 611 may include SAP database (SAP DB), Informix, Oracle, DB2, Sybase, and other such database systems.
Processing device 612 may perform computation and control functions of a system and comprises a suitable central processing unit (CPU). Processing device 612 may comprise a single integrated circuit, such as a microprocessing device, or may comprise any suitable number of integrated circuit devices and/or circuit boards working in cooperation to accomplish the functions of a processing device. Processing device 612 may execute computer programs, such as object-oriented computer programs, within memory 613.
In an embodiment, the ERP software may be used within an on-premise business model, an on-demand business model, or a combination of the two. In an on-premise business model, the ERP software application is housed in-house by a company and the company owns/controls the servers, connections, entitlements, and data pertaining to the ERP software. In an on-demand business model, the servers, connections, entitlements, and data pertaining to the ERP software are owned and controlled by a third-party (such as the ERP software vendor).
In an embodiment, one or more components of the ERP software may be delivered to the end user via cloud computing (private and/or public). The one or more components of the ERP software may be stored on servers at a remote location and delivered over a network. In a public cloud, the provider of the ERP software may deliver the software and/or the data of the software over the Internet. On the other hand, in a private cloud, the cloud is operated exclusively for the end user of the software. The private cloud may be managed by the end user or a third-party, and may be hosted internally or externally.
The foregoing description has been presented for purposes of illustration and description. It is not exhaustive and does not limit embodiments of the invention to the precise forms disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from the practicing embodiments consistent with the invention. For example, some of the described embodiments may include software and hardware, but some systems and methods consistent with the present invention may be implemented in software or hardware alone. Additionally, although aspects of the present invention are described as being stored in memory, this may include other computer readable media, such as secondary storage devices, for example, solid state drives, or DVD ROM; the Internet or other propagation medium; or other forms of RAM or ROM.