Abstract:
The invention provides a system for available-to-promise checks comprising: calculation means for evaluating queries concerning available-to-promise checks; an interface means which is adapted for receiving queries concerning available-to-promise checks from an external calling system, for transferring queries to the calculation means, for storing results of the available-to-promise checks, for outputting the results of the available-to-promise checks to the external calling system; the queries having the form of input tables comprising keys for handing over parameters from the external calling system to be used in the calculation means; and the results having the form of output tables comprising the results according to the query; whereby the input tables and the output tables being separated from each other in order to divide the result of the available-to-promise checks from the query data itself and so to provide one-to-one identification of input table and output table.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field  
         [0002]     This application relates to the planning and control of material and information flows, and more particularly to systems planning and optimizing material and information flows.  
         [0003]     2. Background  
         [0004]     The flow of goods and services from a point of origin to a point of consumption is known as supply chain, and the management of interconnected entities involving one or more supply chains is known as supply chain management (SCM). A system for supply chain management may be computer-implemented and may often include one or more databases representing the supply chains which are to be managed.  
         [0005]     A fundamental activity of a supply chain management system may be concerned with matching demand of goods and services to supply of goods and services. This process is known as demand-supply matching. Demand-supply matching involves the assessment of the availability of intermediate and/or final goods or services in a supply chain.  
         [0006]     In a supply chain management system an assessment of availability, also called an availability check, may be carried out by querying one or more databases which represent the supply chains to be managed. An availability check is also called Available-to-Promise (ATP). Available-to-Promise (ATP) investigates whether a promised delivery can in fact be made, and if so when.  
         [0007]     Typically, ATP systems are embedded into complex planning and organizing systems, such as Advanced Planner and Optimizer (APO) delivered by SAP Aktiengesellschaft, Walldorf, Germany. Such systems may deal with high amounts of data originating from several internal and/or external sources. On the other hand, an APO/ATP system may deliver its results to another part of the complex system for processing the actual ATP check. As long as that system is from the same vendor, complete knowledge to interface that system with the ATP system should always be available. If, however, that system comes from a third party, there is a problem to interface the third-party system with the ATP of the other vendor.  
       SUMMARY OF THE INVENTION  
       [0008]     A system is provided to provide available-to-promise checks, the system includes:  
         [0009]     calculation means for evaluating queries concerning available-to-promise checks;  
         [0010]     storing means for the results of the available-to-promise checks;  
         [0011]     an interface means which is adapted for receiving queries concerning available-to-promise checks from an external calling system, for transferring the queries to the calculation means, and for outputting results of the available-to-promise checks to the external calling system;  
         [0012]     the queries having the form of input tables comprising keys for handing over parameters from the external calling system to be used in the calculation means; and  
         [0013]     the results having the form of output tables comprising the results according to the query; whereby the input tables and the output tables are separated from each other in order to divide the results of the available-to-promise checks from the query data itself and to provide one-to-one identification of respective input table and output table.  
         [0014]     The interface means may be further adapted for handling confirmation of predecessor documents by reference. The tables transferred from/to the interface may comprise keys referring to identify current and predecessor queries of the calling system. Further, profile data may be provided to the external system for adapting the interface means to the external system.  
         [0015]     To provide for further standardization the interface means can be adapted for communication on the basis of a remote function call (RFC). In a particular advantageous embodiment of the invention the communication transmitted via the interface means is free from proprietary information of the APO system. In the context of a special embodiment, the interface means is adapted for receiving a set of data fields specifying a business process to be evaluated. To provide an enhanced adaptability, a part of customizing profile associated with the calling system is managed in the APO system, the part being read upon call by the external system.  
         [0016]     It is an advantage of some of the embodiments of the present invention that an interface is provided via which communication with an arbitrary third-party system is easily enabled. Complex adaptations to data structures of the APO systems are not needed. 
     
    
     BRIEF DESCRIPTION OF DRAWINGS  
       [0017]     The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.  
         [0018]      FIG. 1  shows a preferred embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0019]     An embodiment of the present invention according to  FIG. 1  is used within a global Advanced Planner and Optimizer (APO) system  10 , which supports supply chain management (SCM). The APO can be thought as a planning engine coordinating planning and optimizing activities of a plurality of various external enterprise resource planning (ERP) systems  300 ,  310 ,  320 .  
         [0020]     For a planning or optimizing task to be carried out, the APO system  10  is fed with queries from the various external enterprise resource planning (ERP) systems  300 ,  310 ,  320  which are provided by the same vendor, or by any other vendor. These queries are passed by the interface  100  comprised in the APO system  10  to the ATP component  150  comprised in the APO system  10 . The interface  100  is adapted for performing the communication between the APO system and the calling external systems  300 ,  310 ,  320 . Such calls originating from one of the external systems  300 ,  310 ,  320 , for instance the system  300 , may comprise queries as to available-to promise (ATP) calculations which are to be performed by the ATR component  150  of the APO system  10 . The results according to the calculations are transferred via the interface  100  back to the calling external system  300 . The communication between the interface  100  and the external system  300  is performed on the basis of a standard RFC link  400 .  
         [0021]     The communication between the interface  100  and the external system  300  is done by exchanging tables which comprise relevant parameter and result data, respectively. The tables are separated in input tables and output tables. Furthermore, no data proprietary to the APO system are transmitted to the external system  300 . This simplifies considerably the adaptation of external calling systems  300 .  
         [0022]     The communication via the interface  100  is divided in input and output fields, such that the structures have the following fields.  
         [0023]     First, the global parameters, which are received by the interface  100  are described.  
                                             BAPIGLOBPAR_IN (Input):            Name   Datatype   Short text               TRANSACTION_GUID   SYSUUID_C   ATP: Transaction GUID       USER_NAME   SYUNAME   SAP System, User Logon Name       CALLING_LOGICAL_SYSTEM   LOGSYS   Logical system of BAPI caller       APPLICATION   /SAPAPO/BAPI_ANWDG   ATP: Calling application       INIT_INDICATOR   /SAPAPO/INITIND   ATP: Initialization Indicator for the               Check       ENQUEUE_MODE   /SAPAPO/ENQMOD   ATP: Mode for Locks and Delta               Records During Check                  
 
         [0024]     Only one global parameter is outputted:  
                                             BAPIGLOBPAR_OUT (Output)            Name   Datatype   Short text               TRANSACTION_GUID   SYSUUID_C   ATP: Transaction GUID                  
 
         [0025]     All the following structures are tables:  
         [0000]     Field Catalogue  
         [0026]     The field catalogue has a generic structure, rather than a predefined set of specified parameters. This field catalogue structure contains information which is specific to the processes of the calling system. The data in the field catalogue is used for scheduling purposes and advanced available-to-promise methods.  
         [0000]     Requirement Groups  
         [0027]     The requirement group table input structure is an optional input table, which should be filled in case of Delivery groups, sales BOMs or components check, only. It has the following fields:  
                                             BAPIREQGRP_IN (Input)            Name   Datatype   Short text               REQUIREMENT_GROUP_INDEX_IN   /SAPAPO/REQSUBGRPIDX   ATP requirements group               index       EXTERNAL_NUMBER   /SAPAPO/EXT_CGNUM   ATP: External Number of a               Correlation Group       REQUIREMENT_GROUP_TYPE   /SAPAPO/REQSUBGRPTYP   ATP: Type of Requirements               Group       CORRELATION_MODE   /SAPAPO/CCMOD   Correlation Calculation Mode               (PP)       CORRELATION_PROFILE_ID   /SAPAPO/ATP_CORRPROFILE   ATP: Correlation Calculation               Profile       FORCED_CORRELATION_TYPE   /SAPAPO/CORRTYP_FORCE   ATP: Overriding Correlation               Calculation Type       CORRELATION_TIMESTAMP   /SAPAPO/CORRTMS   ATP: Time Stamp for               Correlation       REQUIREMENT_HEADER_TIMESTAMP   /SAPAPO/REQTMS_HD   ATP: Requirements Date               (Time Stamp) of Finished               Product       REQUIREMENT_HEADER_QUANTITY   /SAPAPO/REQQTY_HD   ATP: Requirement Quantity of               Finished Product       REQUIREMENT_HEADER_UNIT   /SAPAPO/MEINS   Base Unit of Measure                  
 
         [0028]     The requirement group table is a pure output table.  
                                             BAPIREQGRP_OUT (Output):            Name   Datatype   Short text               PRED_REQUIREMENT_ITEM_INDEX   /SAPAPO/REQITMIDX   ATP: Index for an ATP               Requirements Schedule Line       ORIG_REQUIREMENT_ITEM_INDEX   /SAPAPO/OM_REQIDX   ATP: Index for an ATP               Requirement       REQUIREMENT_GROUP_INDEX —     /SAPAPO/REQGRPIDX   ATP requirements group index       OUT       TOTAL_CONFIRMED_TIMESTAMP   /SAPAPO/TCCTMS_HD   ATP: Total Confirmation Date               (Time Stamp) for Finished Prod.       CONFIRMED_QUANTITY   /SAPAPO/CNFQTY_HD   ATP: Confirmed Quantity at               Finished Product Level       PARTIAL_CONFIRMED_TIMESTAMP   /SAPAPO/PCFTMS   ATP: Partial Confirmation Date               (Time Stamp)       PARTIAL_CONFIRMED_QUANTITY   /SAPAPO/PCFQTY   ATP: Partial Confirmation               Quantity       TOTAL_CONFIRMED_DIFFERENCE   /SAPAPO/TCCDIFF   ATP: Difference of Total               Confirmation in Working Time       CONFIRMATION_FACTOR   /SAPAPO/CNFFAC   ATP: Confirmation Factor       PARTIAL_CONFIRMED_DIFFERENCE   /SAPAPO/PCFDIFF   ATP: Difference in Working Time               of 1st Partial Confirmation                  
 
         [0029]     To make the adaptation to an arbitrary external system as easy as possible, there is in the interface table only one line per requirement.  
                                                                         BAPIREQ_IN (Input) and BAPIREQ_OUT (Output)                        Input/       Name   Datatype   Short text   Outp.               REQUIREMENT_INDEX   /SAPAPO/OM_REQIDX   ATP requirements   I/O               index       REQUIREMENT_GROUP_INDEX   /SAPAPO/REQGRPIDX   ATP requirements   I/O               group index       POSITION_IN_SUB_GROUP   /SAPAPO/SUBGRPSEQ   ATP: Requirement item   I               in a requirements               subgroup       PRODUCT   /SAPAPO/EXT_MATNR   External Product   I/O               Indicator       LOCATION   /SAPAPO/EXT_LOCNO   External Location ID   I/O       LOCTYPE   /SAPAPO/C_LOCTYPE   Location Type   I/O       SUB_LOCATION   /SAPAPO/SUBLOC   Sublocation   I/O       PRODUCT_VERSION   /SAPAPO/VERSION   Version   I/O       SPEC_STOCK_IND   /SAPAPO/SOBKZ   Special Stock Indicator   I/O       SPEC_STOCK_KEY   /SAPAPO/SSKEY   Key for Special Stock   I/O               Segment       SPEC_LOGICAL_SYSTEM   LOGSYS   Logical system for   I/O               Special Stock Segment       ORDER_ITEM_GUID   SYSUUID_C   ATP: Item Guid   I/O               (/SAPAPO/POSGUID)       LOGICAL_SYSTEM   LOGSYS   Logical system   I       EXT_ORDER_NUMBER   /SAPAPO/DELNR   Order Number from   I               Connected OLTP               System       ITEM_NUMBER   /SAPAPO/DELPS   Order Item   I       ORDER_TYPE   /SAPAPO/R3TR       PERSIST_ID   SYSUUID_C   Instance Number   I/O               (Persistent)               CUX_PERSIST_ID       ACTION_METHOD   /SAPAPO/ATP_ACTMET   ATP: Check, Delete,   I               Update       CHECK_PROFILE   /SAPAPO/REQPRF   ATP: Requirements   I               profile       SCHEDULING_INDICATOR   /SAPAPO/BAPI_SCHIND   ATP: Indicator: Execute   I               Scheduling       TRANSACTION_TYPE   /SAPAPO/TRTYP   Transaction type   I       ACTIVITY_TYPE   /SAPAPO/ACTYP   Rules-based ATP:   I               Action Type       RESULT_MODE   /SAPAPO/RESMOD   ATP: Results Mode   I       STRUCTURE_INDICATOR   /SAPAPO/STRUCIND   ATP structure indicator   I       FIXED_FLAG   /SAPAPO/BAPI_FIXFLG   Fixed indicator (PP-q &amp;   I               SD tq)       SUBSTITUTION_REASON   /SAPAPO/SUREA   Rules-based ATP:   O               Substitution reason       ERROR_FLAG   /SAPAPO/ERRFLG   ATP: Error occurred   O               while checking a               requirement            REQUIREMENT PROFILE            ATP_CATEGORY   /SAPAPO/ATPCAT   Category of   X               Stock/Receipt/Requirement/               Forecast       ORDER_CATEGORY   /SAPAPO/ATPCAT   Category of   N               Stock/Receipt/Requirement/               Forecast       BUSINESS_EVENT   /SAPAPO/PRREG   Business event   X       CHECK_MODE   /SAPAPO/ATP_CHMOD   Check Mode   X       ALLOCATION_MODE   /SAPAPO/DEM_ALLOC   Assignment Mode   X       TEMP_OBJ_MODE   /SAPAPO/DELTAIND   ATP: Indicator for   X               writing temporary               objects       TECHNICAL_PROCESS   /SAPAPO/TPROC   Rules-based ATP:   X               Technical Scenario       BUSINESS_PROCESS   /SAPAPO/BPROC   Rules-based ATP:   X               Business               transaction       DURATION_TIMESTAMP   /SAPAPO/OM_DURTMS   ATP: Duration of   N               the lifetime of               non-persistent               temporary objects                  
 
         [0030]     Requirement Item:  
                                                 BAPIREQITM_IN (Input) and BAPIREQITM_OUT (Output)                        Input/       Name   Datatype   Short text   Outp.               REQUIREMENT_ITEM_INDEX   /SAPAPO/REQITMIDX   ATP: Index for an   I/O               ATP               Requirements               Schedule Line       REQUIREMENT_INDEX   /SAPAPO/OM_REQIDX   ATP: Index for an   I/O               ATP Requirement       REQUIREMENT_TIMESTAMP   /SAPAPO/REQTMS   ATP:   I/O               Requirements               Date (Time               Stamp)       REQUIREMENT_QUANTITY   /SAPAPO/REQQTY   ATP: Requirement   I/O               Quantity       WITHDRAWN_QUANTITY   /SAPAPO/WITQTY   ATP: Quantity   I               Withdrawn       REFERENCE_TIMESTAMP   /SAPAPO/REFTMS   ATP: Reference   I               Date       REFERENCE_TIME_TYPE   /SAPAPO/EV_TYPE   Scheduling Type   I       SCHEDULE_LINE   /SAPAPO/DELET   Schedule Line   I               Number for               Order/Planning               Element       CUMULATION_TYPE   /SAPAPO/CUMTYP   OnLine versus   I               batch       USED_RECEIPTS_IN_PAST   /SAPAPO/OM_USEDRIP   ATP: conf. Using   O               receipt elem. in               past       PROD_ALLOC_CUM_QUANTITY   /SAPAPO/OM_CUMQTY   ATP: max avail   O               qnty for prod               allocation       PROD_AVAIL_CUM_QUANTITY   /SAPAPO/OM_CUMQTY   ATP: max avail   O               qnty for prod               avail.       FORECAST_CUM_QUANTITY   /SAPAPO/OM_CUMQTY   ATP: max avail   O               qnty for forecast                  
 
         [0031]     The available-to-promise results are comprised in an output and an input table. The input table is to enable the update functionality.  
                                             BAPIRESULTS_IO (Input &amp; Output)            Name   Datatype   Shorttext               REQUIREMENT_ITEM_INDEX   /SAPAPO/REQITMIDX   ATP: Index for an ATP Requirements               Schedule Line       RESULT_INDICATOR   /SAPAPO/RESIND   ATP: Indicator for Origin of Result       RESULT_INDEX   /SAPAPO/RESIDX   ATP: Index of an ATP results row       CONFIRMED_TIMESTAMP   /SAPAPO/CNFTMS   ATP: Confirmation date (time stamp)       CONFIRMED_QUANTITY   /SAPAPO/CNFQTY   ATP: Confirmed Quantity                  
 
         [0032]     The scheduling results are comprised in a pure output table. Only the final result is scheduled.  
                                             BAPIRES_SCHED (Output)            Name   Datatype   Shorttext               RESULT_INDEX   /SAPAPO/RESIDX   ATP: Index of               an ATP results               row       TIME_TYPE   /SAPAPO/EV_TYPE   Date Type       SCHEDULED_TIMESTAMP   /SAPAPO/CNFTMS   ATP:               Confirmation               date               (time stamp)       TIME_ZONE   TIMEZONE   Time Zone                  
 
       REFERENCES  
       [0033]     This is a pure input table, containing the references to predecessor processes. Predecessor processes are processes from external systems ( 300 ,  310 ,  320 ) which have used the ATP-component ( 150 ) of the APO system ( 10 ) some time before. The results of these former processes have been stored in the APO-system ( 10 ) and should now be replaced by the new results of the current process. Instead of specifying the whole key, the identification is done by a reference to the requirement.  
                                             BAPIREF_IN (Input)            Name   Datatype   Short text               REQUIREMENT_INDEX   /SAPAPO/OM_REQIDX   ATP requirements index       PRED_EXT_ORDER_NUMBER   /SAPAPO/DELNR   Order Number from Connected OLTP               System       ORDER_TYPE   /SAPAPO/R3TR       PRED_ATP_CATEGORY   /SAPAPO/ATPCAT   Category of               Stock/Receipt/Requirement/Forecast       PRED_ITEM_NUMBER   /SAPAPO/DELPS   Order Item       PRED_ORDER_ITEM_GUID   SYSUUID_C   ATP: Item Guid               (/SAPAPO/POSGUID)       CONSIDER_QUANTITY_FLAG   /SAPAPO/CNSFLG   ATP: Consider Copied Quantities for               Reference Documents       PRED_LOGICAL_SYSTEM   LOGSYS   Logical system                  
 
         [0034]     The APO will not accept references for documents, which do not have requirements. Furthermore, there are seven standard interface tables for configuration and allocation usage data. All configuration tables are input and output tables. The allocation usage table is a pure output table. In addition to that, there are three standard interface tables, namely an output table containing error messages, an output table, which may contain customer specific fields, and an input table, which may contain customer specific fields.  
         [0035]     The present techniques can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. System of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor. Method elements according to the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on the basis of input data, and by generating output data. The invention may be implemented in one or several computer programs that are executable in a programmable system, which includes at least one programmable processor coupled to receive data from, and transmit data to, a storage system, at least one input device, and at least one output device, respectively. Computer programs may be implemented in a high-level or object-oriented programming language, and/or in assembly or machine code. The language or code can be a compiled or interpreted language or code. Processors may include general and special purpose microprocessors. A processor receives instructions and data from memories, in particular from read-only memories and/or random access memories. A computer may include one or more mass storage devices for storing data; such devices may 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 disks. Any of the foregoing can be supplemented by or incorporated in ASICs (application-specific integrated circuits).  
         [0036]     The computer systems or distributed computer networks as mentioned above may be used, for example, for producing goods, delivering parts for assembling products, controlling technical or economical processes, or implementing telecommunication activities.  
         [0037]     To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen 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 system. The computer system can be programmed to provide a graphical or text user interface through which computer programs interact with users.  
         [0038]     A computer may include a processor, memory coupled to the processor, a hard drive controller, a video controller and an input/output controller coupled to the processor by a processor bus. The hard drive controller is coupled to a hard disk drive suitable for storing executable computer programs, including programs embodying the present technique. The I/O controller is coupled by means of an I/O bus to an I/O interface. The I/O interface receives and transmits in analogue or digital form over at least one communication link. Such a communication link may be a serial link, a parallel link, local area network, or wireless link (e.g. an RF communication link). A display is coupled to an interface, which is coupled to an I/O bus. A keyboard and pointing device are also coupled to the I/O bus. Alternatively, separate buses may be used for the keyboard pointing device and I/O interface.  
         [0039]     The foregoing descriptions of specific embodiments of the present invention have been presented for the purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in the light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.  
         [0040]     In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.