This document relates to a data flow.
Enterprise information technology (IT) systems often are used to manage and process business data. To do so, a business enterprise may use various application programs running on one or more enterprise IT systems. Application programs may be used to process business transactions, such as taking and fulfilling customer orders, providing supply chain and inventory management, performing human resource management functions, and performing financial management functions. Application programs also may be used for analyzing data, including analyzing data obtained through transaction processing systems. In many cases, application programs used by a business enterprise are developed by a commercial software developer for sale to, and use by, many business enterprises.
An application program may be designed to meet the specific requirements of the environment in which the application program is operating. Some commercial application programs may be designed for use by many business enterprises that are in a particular industry or in a particular geographic region. In some cases, a more-generalized commercial application program may be modified for more specialized use by many business enterprises. Such modifications may be performed by the same business enterprise that developed the more-generalized commercial application program, or such modifications may be performed by a different business enterprise, which may be referred to as a “business partner” of the business enterprise that developed the more-generalized commercial application program. In some cases, modifications may be made to the application program to meet the specific requirements of business enterprises in a particular industry or a particular geographic region, or to meet the specific requirements of a particular business enterprise or a particular department in a business enterprise. Examples of such modification include customization of the data model, the process model, or the user interface of the application. Modification of an application program may require knowledge of the data model, the process model, and/or the user interface of the application program. Modification of an application program also may require knowledge of programming techniques used to develop the application program.
Business processes may be subdivided into several phases or steps of process execution following each other according to some rules. Examples of this include planning steps, execution steps, finalization steps, etc. in logistic processes. To be able to model such business process steps at design time and to automatically implement and execute them at runtime it is often required to describe how parts of preceding objects involved in the process step are distributed to succeeding ones (splitting and merging, m:n relations) as well as how data is copied/moved from the predecessor(s) to the successor(s) (flows of data). In principle, the number of different types of preceding object instances involved in such a step and the number of different types of succeeding object instances can be unlimited (1 or many). Covering all aspects of modeling and executing a process step can include covering its first execution (creation of succeeding object instances) as well as all further executions (change, deletion of succeeding object instances) during the lifetime of a process.
The invention relates to data flow.
In some aspects, methods and systems are provided for modeling business process steps in a system. For example, such aspects can provide for modeling of all aspects of the flow of data from the predecessor(s) to the successor(s) steps. A single or multiple predecessor steps can be modeled to transition into a single or multiple successor steps. Split/merge rules can be provided to be associated with process steps such that, at runtime, business objects are split and/or merged according to the rules. Any or all aspects described herein can be part of a method or system.
In some aspects, a transaction service is provided to interact with business objects. The service can include any or all of a management service, a splitting and/or merging service, and a data transfer service. Any or all aspects described herein can be part of a transaction service.
In some aspects, a data flow is an entity that completely or substantially encapsulates all or substantially all aspects of a flow of data from a preceding object instance part into a succeeding object instance part. A set of several single flows of data can provide the complete flow of data of an entire process step. Any or all aspects described herein can be part of a data flow.
Implementations can provide any, all or none of the following advantages. Modeling of business processes can be improved. Data flow between instances in a process can be improved. Transitions between steps or objects in a business process can be improved. Configuration and/or operation of enterprise business systems can be improved. A modeling process can be provided where split/merge rules and data flow rules are separate and/or independent. Providing predefined business content that can be included in a computer system before delivery to a customer who will configure the system according to the customer's needs. Providing that a data flow is defined using an underlying structure and not by names of nodes involved in the transition. Providing product flexibility because only some settings are changed; providing product transparency because a user can see the relevant information; and providing product stability because everything is managed in a common place.
The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
In some implementations, the service 100 is used with any or all of the business objects (here: BOs) available in products from SAP AG. Examples of such BOs include, but are not limited to: Sales Order, Supplier Invoice, and Outbound Delivery. The exemplary service 100 is therefore referred to as the BO transition service, or BOTS for short. For example, BOTS can provide for modeling of all aspects of the flow of data from predecessor(s) to successor(s) steps in a business process. BOTS is described in the provisional application U.S. 60/852,433, on any or all of pages 1-302 thereof (pages in this provisional application are hereafter referred to thus: pages 1-302). Examples of business scenarios using BOTS include: sell from stock, plan driven procurement (pages 165 et seq.). These or other scenarios can involve outbound delivery components and/or inbound delivery components.
At a high level, BOTS illustrates how a transition can be accomplished between one or more preceding business objects 102 and one or more succeeding business objects 104. BOTS can include a management service 106, a split/merge service 108, and a data transfer service 110. Any or all of these services can be defined by, and performed in accordance with, information included in a configuration 112. In some implementations, each of the services 106-110 has a separate configuration. For example, BOTS can provide one or more data flow entities. A data flow can be an entity that completely or substantially encapsulates all or substantially all aspects of a flow of data from a preceding object instance part into a succeeding object instance part.
The following are examples of using BOTS. The data transfer service 110 can handle issues relating to which data is to be moved and when. For example, the data transfer service can provide execution of a number of data flows based on a result of applying split/merge rules. The split/merge service 108 can handle issues relating to how many instances are to be used. The management service 106 can hold together the processing performed by the other two (and optionally other) services and/or other components. For example, the management service can create class instances, read data and call one or more other services.
A transition will be performed from the MO Type X objects to the BO Type Y objects. For example, the BOTS 100 can be used. Similarly, the BOTS 100 (or another transition service) can be used to transition from business objects (labeled BO Type Y) in a step 200M to business objects (labeled BO Type Z) in a step 200N. The process that includes the steps 200A,B,M,N can in some implementations include more or fewer process steps.
A data flow can be defined independently from any object specific concept (such as object names or object node names) and can be based only on data structure information to keep it re-usable. Object specific data flows might have disadvantages if they must be defined several times, also when two or more flows technically perform the same operation (such as copying business partner data).
A data flow can be defined independently from any business process model steps while being capable of use in one or several business process model steps. A business process step can be modeled and executed by another functionality, for example a Business Object Transition Service or Business Process Gate Service as described in pending application U.S. Ser. No. 11/148,245.
A data flow can contain information on one preceding data structure and one succeeding data structure (i.e. their respective technical names) which can be used to generically manipulate them at runtime (i.e. to allocate a typed piece of memory for them and to access their components).
A data flow can contain information on one processing entity (e.g., in SAP implementations, the technical name of an ABAP class which shall be invoked when executing the corresponding data flow). This processing entity can be a specific implementation made to execute exactly one kind of data move, and/or a generic one, which is able to execute several ones, based on further model information. Every processing entity can offer a unified API (e.g., in SAP implementations, implement an ABAP interface), so they can be all invoked the same way at runtime by some processor.
In short, the interface 300 can provide for naming of the data flow being defined, naming a source data type, a target data type, a data flow class, and an extension data flow. For example, the source data type can be identified by naming an interface name of a service provider for the source structure, the target data type by naming an interface name of a service provider for the target structure, and the data flow class by naming an implementing class. The interface 300 does not provide for entering names of nodes in the source and target objects, but rather the types of structure(s) involved. A user such as a developer, a service and/or an application can make input in the interface 300 for defining the data flow. The defined data flow can be stored in the system.
In some implementations, the diagram 1200 is executed in at least a first phase and a second phase. The first phase can include processing profile independent data flows and creating one or more business objects. For example, this can involve processing normal data flows and thus directly moving data. The second phase can include processing profile dependent data flows and modifying one or more business objects. For example, this can involve text or an attachment that is maintained by another service, and thus data is not directly moved by the data flow but rather the data flow can encapsulate an underlying service. In BOTS implementations, the diagram 1200 can involve using classes from the services 106-110. An outcome of performing the sequence diagram 1200 can be that a complex table is generated for further processing.
The memory 2020 stores information within the system 2000. In one implementation, the memory 2020 is a computer-readable medium. In one implementation, the memory 2020 is a volatile memory unit. In another implementation, the memory 2020 is a non-volatile memory unit.
The storage device 2030 is capable of providing mass storage for the system 2000. In one implementation, the storage device 2030 is a computer-readable medium. In various different implementations, the storage device 2030 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device 2040 provides input/output operations for the system 2000. In one implementation, the input/output device 2040 includes a keyboard and/or pointing device. In another implementation, the input/output device 2040 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of this disclosure. Accordingly, other embodiments are within the scope of the following claims.
This document relates to and claims priority from: U.S. Provisional Patent Application 60/852,433, filed Oct. 16, 2006 and entitled “Data flow”; and U.S. patent application Ser. No. 11/148,245, filed Jun. 9, 2005 and entitled “Controlling data transition between business processes in a computer application”. The contents of each of the above applications is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60852433 | Oct 2006 | US |