Business software such as enterprise resource planning (ERP) software implements business processes by modeling business data as business objects (BOs) with data exchange between the BOs. The business data provided via BOs can be accessed through mechanisms such as user interfaces, forms, and analytical reports.
Traditionally, to provide a third party (such as a partner or the software consumer) the ability to extend BOs, software providers furnished the third party with software development tools that enable the third party to build add-ons to the standard business software. The software development tools may provide the ability to add new attributes to individual standard BOs. However, the third party may want to extend all BOs in a business scenario, and in order to do so, the third party may have to individually modify every BO with its data exchange in that business scenario. Such an approach can be problematic, because the data exchange between BOs might not be exposed to third party development and the development would be highly time-consuming and error-prone with respect to consistency of all related singular BO enhancements.
Embodiments may be discussed in systems to efficiently extend business scenarios.
In an embodiment, a search area to search business scenarios may be displayed on a display device. Business scenario(s) may be displayed on the display device based on a search criteria specified in the search area. Each business scenario may include a plurality of business objects. In response to identification of a business scenario from the business scenario(s), an integrated development environment may be displayed on the display device. The integrated development environment may include functionality to add extension field(s) to business object(s) included in the business scenario. In response to input indicating extension field(s), the extension field(s) may be added to the business object(s) included in the business scenario.
In an embodiment, the added extension field(s) may be propagated to all business objects included in the business scenario. In an embodiment, the integrated development environment may present automatically generated programming code indicating the business scenario and the business object(s) included in the business scenario. In an embodiment, the search criteria may indicate business object(s), wherein the displayed business scenario(s) may include the business object(s) indicated in the search criteria. In an embodiment, the search criteria may indicate business scenario(s). The displayed business scenario(s) may be the business scenario(s) indicated in the search criteria. In an embodiment, in response to the identification of the business scenario from the business scenario(s), a display device may display business scenarios including any business objects included in the identified business scenario.
Business software usually includes a standard set of BOs which can be utilized by the software user. For example, in an embodiment, business software may include BOs representing sales orders, sales quotes, customer quotes, service documents, and business opportunities. Each BO may include attributes and/or other BOs predefined by the software provider, and may be referred to as nodes. For example, a business opportunity BO may include one or more business process variant types, business transaction documents, overviews, parties, sales and service business areas, sales cycles, sales cycle assistants, and sales forecasts. Here, business process variant types, business transaction documents, overviews, parties, sales and service business areas, sales cycles, sales cycle assistants, and sales forecasts may be referred to as nodes of the business opportunity BO.
In an embodiment, after a sales quote is received by a prospective client, the prospective client may place a sales order based on the quote. The sales order may be represented by BO 106. There may be a data flow 114 between the sales quote BO 104 and the sales order BO 106. In an embodiment, the information about the vendor, the client, and the product may be copied from the sales quote BO 104 to the sales order BO 106. The communication chain of data between one or more BOs may be called a business scenario. In an embodiment, a business scenario may not have a communication gap between BOs in the business scenario. In other words, a business scenario may be one or more data flows without any communication gaps between the BOs of the data flows. Thus, data flow 112 may be a business scenario, data flow 114 may be a business scenario, and the combination 116 of data flows 112 and 114 may be a business scenario.
In an embodiment, the software provider may provide the software to a third party, called a software partner, and the software partner may customize the software further and provide the software to the ultimate software consumer. The software partner may customize the software to fit particular needs of a type of consumer.
For example, in an embodiment, a business software consumer such as an automobile seller may be interested in purchasing business software to model the consumer's business. A software provider may provide business software with generic BOs to a partner specializing in the automobile industry. The business software with generic BOs may include a generic sales quote BO 104. The generic sales quote BO 104 may include a field to specify a type of product such as a car. However, the generic sales quote BO 104 may not allow for enough granularity to specify the exact make and model of the car. Therefore the software provider may provide the partner with tools to extend the generic sales quote BO 104. Since the partner specializes in the automobile industry, the partner may extend the generic sales quote BO such that the exact make and model of the car can be specified. The partner may then provide the software to the business software consumer (the automobile seller) with the added functionality. In an embodiment, the software provider may directly provide the business software consumer with tools to extend the generic sales quote BO 104. Thus, instead of the partner, the business software consumer may extend the generic sales quote BO such that the exact make and model of the car can be specified.
Traditionally, to provide a third party (such as a partner or the software consumer) the ability to extend BOs, software providers furnished the third party with software development tools that enable the third party to build add-ons to the standard business software. The software development tools may provide the ability to add new attributes to individual standard BOs. However, the third party may want to extend all BOs in a business scenario, and in order to do so, the third party may have to individually modify every BO with its data exchange in that business scenario. Such an approach can be problematic, because the data exchange between BOs might not be exposed to third party development and the development would be highly time-consuming and error-prone with respect to consistency of all related singular BO enhancements.
In an embodiment, a graphical user interface (GUI) may be utilized by a user (such as a partner or a software consumer) to extend business scenarios.
In an embodiment, the search area 210 may include parameter fields such as a namespace field 214 and/or a BO field 212. In an embodiment, specifying a particular BO, for example “opportunity,” in the BO field 212 and searching for available business data flows may display, in display area 220, the available business data flows which include the BO opportunity (222 and 224). One or more of the displayed business data flows may be selected and marked as a business scenario to be extended, for example via check boxes next to the business data flows, highlighting, etc.
In an embodiment, selecting one or more business data flows may display available business data flows related to the selected business data flow(s). In an example embodiment, since the business data flow 222 includes the three BOs, opportunity, sales quote, and sales order, selecting business data flow 222 may display all business data flows which include any one of the three BOs.
In an embodiment, the search area 210 may include parameter fields such as a business scenario field (not shown) and/or a data flow field (not shown) so that the available business data flows may be searched based on business scenario identifiers and/or data flow identifiers respectively. A person having ordinary skill in the art will appreciate that any search criteria capable of identifying business data flows may be displayed in search area 210.
In an embodiment, the available values for the search fields displayed in search area 210 may be shown via a pre-populated drop down menu. In an embodiment, the values for the search fields may be typed in manually as a text string.
In an embodiment, the search area 210 may include a field (not shown) to input a text string search query similar to a structured query language (SQL) query. For example, the search query, “select business_data_flow where business_object=‘opportunity’”, may display in display area 220 the available business data flows which include the BO opportunity (222 and 224). A person having ordinary skill in the art will appreciate that the exact syntax of the text search string may vary in other embodiments.
In an embodiment, the BO field 312 may list the BOs included in a business data flow/scenario previously identified for extension. For example, in an embodiment, the user may use GUI 200 (
In an embodiment, the IDE may be pre-populated with programming code necessary to add one or more new extension fields. For example, in an embodiment, the user may use GUI 200 (
A person having ordinary skill in the art will appreciate that the programming language shown in IDE 400 is an example embodiment, and that other embodiments may incorporate any programming language including advanced business application programming (ABAP), C++, Java, C, C#, and Visual Basic. Similarly, a person having ordinary skill in the art will appreciate that an extension field can be of any data type, including, integer, floating point number, packed number, text, date, numeric text, time, hexadecimal, object (such as an object oriented object), and BO.
In an embodiment, once the user specifies the new extension field(s) and the corresponding data type(s) of the extension fields, the associated BO(s) will include the new extension field(s), and the user may have access to the newly defined extension field within the business software. For example, after defining the new field as described above using IDE 400, the BO opportunity, belonging to the business scenario, opportunity→sales quote→sales order, will include a new extension field of text data type, and the user may assign values to the new extension field.
In an embodiment, a new extension field added to one BO from a particular business scenario will automatically propagate the new extension field to all BOs associated with that particular business scenario. For example, after defining the new field as described above using IDE 400, all BOs (opportunity, sales quote, and sales order) belonging to the business scenario, opportunity→sales quote→sales order, will include the same new extension field of text data type.
A person having ordinary skill in the art will appreciate that the GUIs and IDE illustrated in
A person having ordinary skill in the art will appreciate that while internal systems 530 and external systems 550 are included in
Each of the systems in
In an embodiment, memory 513 may contain different components for retrieving, presenting, changing, and saving data. Memory 513 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 513 and processing device(s) 512 may be distributed across several different computers that collectively comprise a system.
Database 511 may include any type of data storage adapted to searching and retrieval. The database 511 may include SAP database (SAP DB), Informix, Oracle, DB2, Sybase, and other such database systems. The database 511 may include SAP's HANA (high performance analytic appliance) in-memory computing engine and other such in-memory databases.
Processing device 512 may perform computation and control functions of a system and comprises a suitable central processing unit (CPU). Processing device 512 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 512 may execute computer programs, such as object-oriented computer programs, within memory 513.
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.