DE102013215529B4 - Remapping jobs to check data quality - Google Patents

Remapping jobs to check data quality Download PDF

Info

Publication number
DE102013215529B4
DE102013215529B4 DE102013215529.8A DE102013215529A DE102013215529B4 DE 102013215529 B4 DE102013215529 B4 DE 102013215529B4 DE 102013215529 A DE102013215529 A DE 102013215529A DE 102013215529 B4 DE102013215529 B4 DE 102013215529B4
Authority
DE
Germany
Prior art keywords
job
jobs
data
database
copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013215529.8A
Other languages
German (de)
Other versions
DE102013215529A1 (en
Inventor
Mike Grasselt
Albert Maier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE102013215529.8A priority Critical patent/DE102013215529B4/en
Publication of DE102013215529A1 publication Critical patent/DE102013215529A1/en
Application granted granted Critical
Publication of DE102013215529B4 publication Critical patent/DE102013215529B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Abstract

Von einem Computer ausgeführtes Verfahren, um die Datenqualität von Daten eines Anwendungsprogramms (366) durch ein Datenqualitätsmanagementsystem (310) zu prüfen, wobei das Verfahren aufweist:- Ausführen (102) von mindestens einem Job einer Vielzahl von Jobs (332) durch das Datenqualitätsmanagementsystem, wobei der mindestens eine Job so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet,• wobei jeder der Jobs zu einem Job-Satz einer Vielzahl von Job-Sätzen (334, 336, 338) gehört, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz (334) und einen zweiten Job-Satz (336) aufweist;• wobei jeder Job-Satz der Job-Sätze eine Kategorie eines Laufzeitverhaltens darstellt, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden;• wobei die Ausführung der in dem ersten Job-Satz enthaltenen Jobs von einer Nachricht (MS) ausgelöst wird, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt;• wobei die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs von einem Scheduler (314) des Datenqualitätsmanagementsystems ausgelöst wird;- Überwachen des Laufzeitverhaltens von dem mindestens einen ausgeführten Job durch das Datenqualitätsmanagementsystem, um ein aktuelles Laufzeitverhalten des Jobs festzustellen;- Neuklassifizieren des mindestens einen überwachten Jobs, indem der Job demjenigen Job-Satz neu zugeordnet wird, der das festgestellte aktuelle Laufzeitverhalten darstellt.Method executed by a computer to check the data quality of data of an application program (366) by a data quality management system (310), the method comprising:- executing (102) at least one job of a plurality of jobs (332) by the data quality management system, wherein the at least one job is designed to evaluate the data for compliance with one or more quality criteria,• wherein each of the jobs belongs to a job set of a plurality of job sets (334, 336, 338), the plurality the job sets comprises at least a first job set (334) and a second job set (336);• wherein each job set of the job sets represents a category of run-time behavior, the jobs contained in each job set corresponding their respective runtime behavior have been divided into the runtime behavior categories;• the execution of the jobs contained in the first job set being triggered by a message (MS), which the data quality management system receives from the application program;• wherein the execution of the jobs contained in the second job set is triggered by a scheduler (314) of the data quality management system;- the data quality management system monitors the runtime behavior of the at least one executed job in order to obtain a current runtime behavior of the job;- reclassifying the at least one monitored job by reassigning the job to the job set that represents the detected current runtime behavior.

Description

Bereich der Erfindungscope of the invention

Die Erfindung betrifft den Bereich der Datenverarbeitung und, genauer gesagt, den Bereich des Prüfens der Datenqualität.The invention relates to the field of data processing and more specifically to the field of data quality testing.

Hintergrundbackground

Systeme zur Unternehmensressourcenplanung (Enterprise Resource Planning (ERP)) und zugehörige Datenverwaltungssysteme sind für Unternehmen aus den unterschiedlichsten Industriezweigen und mit der unterschiedlichsten technologischen Ausrichtung von entscheidender Bedeutung. Eine nicht unerhebliche Menge Geld und Zeit wird in die Vermeidung und Beseitigung von fehlerhaften Daten in ERP-Systemen gesteckt, da fehlerhafte Daten zu fehlerhaften Herstellungsprozessen und dem Verlust von Daten führen können und äußerst wichtige Datensätze unbrauchbar machen können.Enterprise resource planning (ERP) systems and associated data management systems are critical to organizations across a wide range of industries and technology verticals. A significant amount of money and time is invested in preventing and eliminating erroneous data in ERP systems, since erroneous data can lead to faulty manufacturing processes and data loss, rendering extremely important data sets unusable.

Manche ERP-Systeme sind bereits mit einigen integrierten Modulen ausgestattet, um die Datenqualität sicherzustellen. Oftmals werden alternativ oder zusätzlich zu den integrierten Modulen externe Systeme eingesetzt, um die Datenqualität zu gewährleisten und aufrechtzuerhalten. Ein Problem in Verbindung mit der Verwendung von externen Systemen zur Prüfung der Datenqualität besteht darin, dass zusätzlicher Zeitaufwand notwendig ist, um das externe System an die semantische Struktur der Geschäftsobjekte des ERP-Systems oder gar an die Datenstrukturen anzupassen, die zur Speicherung der Geschäftsobjekte verwendet werden, damit es dem externen System möglich ist, die Qualitätsprüfungen durchzuführen. Folglich kann sowohl die Durchführung als auch die Vorbereitung von Prüfungen der Datenqualität im Zusammenhang mit einem ERP-System zeitaufwendig sein.Some ERP systems already come with some built-in modules to ensure data quality. External systems are often used as an alternative or in addition to the integrated modules to ensure and maintain data quality. A problem associated with using external systems to check data quality is that additional time is required to adapt the external system to the semantic structure of the business objects of the ERP system or even to the data structures used to store the business objects so that it is possible for the external system to carry out the quality checks. As a result, both performing and preparing for data quality checks associated with an ERP system can be time-consuming.

Ein weiteres Problem ist, dass Prüfungen der Datenqualität, insbesondere globale Prüfungen der Datenqualität, welche die Verarbeitung einer Vielzahl von Geschäftsobjekten aus einer Datenquelle oder aus einer Vielzahl von verteilten Datenquellen beinhalten, äußerst zeitaufwendig sein können. Eine laufende Datenqualitätsprüfung kann somit einen Engpass für die Leistungsfähigkeit eines ERP-Systems darstellen. Ein weiteres Problem besteht darin, dass das Laufzeitverhalten der Qualitätsprüfungen in Abhängigkeit von den ausgewerteten Daten und/oder der Antwortzeit von externen Ressourcen, welche gewisse Teile der auszuwertenden Daten des ERP-Systems aufweisen, stark und unvorhersehbar variieren kann.Another problem is that data quality reviews, particularly global data quality reviews that involve processing multiple business objects from one data source or from multiple distributed data sources, can be extremely time consuming. An ongoing data quality check can therefore represent a bottleneck for the performance of an ERP system. Another problem is that the runtime behavior of the quality checks can vary greatly and unpredictably depending on the evaluated data and/or the response time of external resources which contain certain parts of the ERP system data to be evaluated.

Kurzdarstellung der ErfindungSummary of the Invention

Es ist eine Aufgabe von Ausführungsformen der Erfindung, ein verbessertes, von einem Computer ausgeführtes Verfahren, einen von einem Computer lesbaren Datenträger und ein Computersystem vorzusehen, um die Datenqualität von Daten eines Anwendungsprogramms, beispielsweise eines ERP-Systems, durch ein Datenqualitätsmanagementsystem (data quality management system (DQMS)) zu prüfen. Die Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen angegeben. Soweit nicht ausdrücklich anders angegeben, können Ausführungsformen der Erfindung frei miteinander kombiniert werden.It is an object of embodiments of the invention to provide an improved computer-implemented method, computer-readable data carrier and computer system for measuring the data quality of data of an application program, for example an ERP system, by a data quality management system (data quality management system (DQMS)). The object is solved by the features of the independent claims. Preferred embodiments are given in the dependent claims. Unless expressly stated otherwise, embodiments of the invention can be freely combined with one another.

In der hier verwendeten Weise ist ein „Anwendungsprogramm“ ein beliebiges, funktional zusammenhängendes Stück Programmlogik, das in der Lage ist, ein oder mehrere Geschäftsobjekte zu verarbeiten, d.h., zu erstellen, zu ändern und/oder zu löschen. In der hier verwendeten Weise bezieht sich ein „Geschäftsobjekt“ (business object (BO)) auf ein Datenobjekt, z.B. ein Idoc-Objekt, das gemäß einem „Geschäftsobjektschema“ angegeben wird. In der hier verwendeten Weise wird der Begriff „Geschäftsobjekt“ verwendet, um auf Instanzen eines Geschäftsobjekts zu verweisen, die in dem Geschäftsobjektschema angegeben sind. Ein Geschäftsobjektschema ist eine Beschreibung der semantischen Struktur von Geschäftsobjekten und optional ihrer untereinander bestehenden Wechselbeziehung. Ein Geschäftsobjektschema kann zum Beispiel eine Beschreibung der Geschäftsobjekttypen „Analyse-Einheit“ und „biologisches Muster“ aufweisen, wobei die „Analyse-Einheit“ dem Schema entsprechend Attribute wie „Musterkapazität“, „Status“, „Einheitentyp“ oder dergleichen und der Geschäftsobjekttyp „biologisches Muster“ Attribute wie „Mustertyp“, „Alter“, „Patientenkennung“ oder dergleichen aufweisen kann. Jede Instanz eines BO wird entsprechend einer jeweiligen BO-Definition erzeugt, die in dem BO-Schema angegeben ist.As used herein, an "application program" is any functionally coherent piece of program logic capable of manipulating, i.e., creating, modifying and/or deleting, one or more business objects. As used herein, a "business object" (BO) refers to a data object, such as an Idoc object, specified according to a "business object schema". As used herein, the term "business object" is used to refer to instances of a business object that are specified in the business object schema. A business object schema is a description of the semantic structure of business objects and, optionally, their interrelationship. For example, a business object schema may have a description of the business object types "analysis entity" and "biological sample", where the "analysis entity" has attributes according to the schema such as "sample capacity", "status", "unit type" or the like and the business object type " "biological pattern" may have attributes such as "pattern type", "age", "patient identifier" or the like. Each instance of a BO is created according to a respective BO definition given in the BO schema.

In der hier verwendeten Weise ist ein „Job“ eine Arbeitseinheit, die von einem Datenverarbeitungssystem ausgeführt wird. In Abhängigkeit von der Ausführungsform kann es sich bei einem Job um einen kompilierten, ausführbaren Binärcode, z.B. einen Bytecode, oder um auswertbaren Programmcode handeln. In der hier verwendeten Weise bezieht sich ein „Laufzeitverhalten“ auf Merkmale des Verhaltens eines ausgeführten Jobs. In der hier verwendeten Weise ist eine „Regel“ ein beliebiges Stück Software-Code, das einen entsprechenden Job angibt und von einem Programmierer geändert werden kann. Bei einer Regel kann es sich zum Beispiel um eine Java- oder C++-Klasse, um funktionstragende Teile der Java- oder C++-Klasse oder um ein PHP-Skript oder dergleichen handeln.As used herein, a "job" is a unit of work performed by a data processing system. Depending on the embodiment, a job may be a kom compiled, executable binary code, e.g. a byte code, or program code that can be evaluated. As used herein, "run-time behavior" refers to characteristics of the behavior of an executed job. As used herein, a "rule" is any piece of software code that specifies a job and can be modified by a programmer. A rule can be, for example, a Java or C++ class, functional parts of the Java or C++ class, or a PHP script or the like.

In der hier verwendeten Weise ist ein „Datenqualitätsmanagementsystem“ (DQMS) ein Anwendungsprogramm, z.B. ein ERP-System, das zur Verwaltung von Daten entwickelt wurde und integrierte oder zusätzliche Funktionen aufweist, um einige Qualitätsprüfungen an den verwalteten Daten durchzuführen. In der hier verwendeten Weise bezieht sich die Sicherstellung und die Aufrechterhaltung der „Datenqualität“ auf die Aufgabe, die Konsistenz von Daten sicherzustellen und aufrechtzuerhalten, auf die Vermeidung oder die Entfernung von redundanten Dateneinträgen, auf die Sicherstellung, dass Datenwerte in einem konsistenten Datenformat gespeichert werden (z.B. dass alle Datumsangaben in einem konsistenten Datenformat gespeichert werden), auf die Sicherstellung, dass die gespeicherten Daten semantisch oder syntaktisch korrekt sind, oder dergleichen.As used herein, a "data quality management system" (DQMS) is an application program, e.g. an ERP system, designed to manage data and has built-in or additional functionality to perform some quality checks on the managed data. As used herein, ensuring and maintaining "data quality" refers to the task of ensuring and maintaining the consistency of data, avoiding or removing redundant data entries, ensuring that data values are stored in a consistent data format (e.g. that all dates are stored in a consistent data format), to ensuring that the data stored is semantically or syntactically correct, or the like.

In der hier verwendeten Weise ist eine „Transaktion“ eine von einem Anwendungsprogramm an einer Datenbank durchgeführte Arbeitseinheit, die unabhängig von anderen Transaktionen zusammenhängend ausgeführt wird. Eine Transaktion kann zum Beispiel die Übergabe eines Befehls an eine Datenbank aufweisen, die mit dem Anwendungsprogramm betriebsfähig verbunden ist, um ein BO oder beliebige seiner Attributwerte in der Datenbank zu speichern oder zu ändern oder um das BO oder Attribute aus der Datenbank zu löschen. Vorzugsweise folgt eine Transaktion einem „Alles-oder-nichts“-Prinzip gemäß dem ACID-Konzept (atomar, konsistent, isoliert und dauerhaft).As used herein, a "transaction" is a unit of work performed by an application program on a database that is contiguously executed independently of other transactions. A transaction may include, for example, the submission of a command to a database operably linked to the application program to store or change a BO or any of its attribute values in the database, or to delete the BO or attributes from the database. Preferably, a transaction follows an "all or nothing" principle according to the ACID concept (atomic, consistent, isolated and durable).

In der hier verwendeten Weise ist eine „proaktive Prüfung“ eine Prüfung der Datenqualität, die durchgeführt wird, bevor eine Transaktion festgeschrieben wird, um sicherzustellen, dass die Transaktion nicht festgeschrieben wird, falls die in der Transaktion zu übertragenden Daten die von der proaktiven Prüfung ausgewerteten Qualitätskriterien nicht erfüllen.As used herein, a "proactive check" is a data quality check performed before a transaction is committed to ensure that the transaction will not commit if the data to be transferred in the transaction is that evaluated by the proactive check quality criteria not met.

In der hier verwendeten Weise ist eine „reaktive Prüfung“ eine Prüfung der Datenqualität, die durchgeführt wird, nachdem eine Transaktion von dem Anwendungsprogramm festgeschrieben wurde, um sicherzustellen, dass in dem Fall, in dem die in der Transaktion übertragenen Daten nicht die Qualitätskriterien erfüllen, welche von der reaktiven Prüfung ausgewertet wurden, diese Daten gekennzeichnet werden. In Abhängigkeit von der reaktiven Prüfung und dem festgestellten Qualitätsmangel können die fehlerhaften oder qualitativ geringwertigen Daten automatisch entfernt, korrigiert oder gemeldet werden.As used herein, a "reactive check" is a data quality check performed after a transaction has been committed by the application program to ensure that in the event the data transferred in the transaction does not meet the quality criteria, which were evaluated by the reactive check, this data is marked. Depending on the reactive check and the detected quality defect, the erroneous or low-quality data can be automatically removed, corrected or reported.

In der hier verwendeten Weise ist eine ‚externe Ressource‘ eine beliebige Datenressource, die sich außerhalb des Datenqualitätsmanagementsystems befindet und einige Daten aufweist, die zusätzlich zu den Daten eines BO eines Anwendungsprogramms ausgewertet werden müssen, um die Datenqualität von mindestens einigen der BOs zu prüfen. Die externe Ressource kann ein Computersystem oder eine Datenbank sein, die mit dem Datenqualitätsmanagementsystem über ein Netzwerk, z.B. das Internet oder ein Intranet, verbunden ist.As used here, an 'external resource' is any data resource that is outside of the data quality management system and has some data that needs to be evaluated in addition to the data of an application program BO to check the data quality of at least some of the BOs. The external resource can be a computer system or database connected to the data quality management system over a network, e.g., the Internet or an intranet.

In der hier verwendeten Weise bezieht sich eine „Datenbank“ auf eine beliebige Art eines Datenspeichers, z.B. einen Satz von Dateiverzeichnissen, XML-Dateien oder vorzugsweise auf eine relationale oder spaltenorientierte Datenbank.As used herein, a "database" refers to any type of data store, e.g., a set of file directories, XML files, or preferably a relational or columnar database.

In der hier verwendeten Weise ist ein „Extract-transfer-load“-(ETL-) beziehungsweise „Entnehmen-übertragen-laden“-Job ein beliebiger Job, der in der Lage ist, dem Anwendungsprogramm BO-Instanzen oder Teile von BO-Instanzen von einem oder mehreren BOs zu entnehmen, die Daten in ein Datenformat zu überführen, das von dem Datenqualitätsmanagementsystem verarbeitet werden kann, und die transformierten Daten in einer Datenbank zu speichern, die mit dem Datenqualitätsmanagementsystem betriebsfähig verbunden ist. In der hier verwendeten Weise ist ein ETL-Job, der auf einer „BO-Ebene“ Operationen durchführt, ein ETL-Job, der die zu übertragenden Daten nicht über eine Schnittstelle der Datenbank, in der die BOs physisch gespeichert sind, sondern über eine Anwendungs-API abfragt, welche BOs und entsprechenden Attributen entspricht, die in dem BO-Schema des Anwendungsprogramms angegeben sind. Folglich arbeitet ein ETL-Job, der auf einer „BO-Ebene“ Operationen durchführt, auf der Grundlage der semantischen und nicht der syntaktischen Struktur eines Datenobjekts.As used herein, an extract-transfer-load (ETL) job is any job capable of delivering BO instances or portions of BO instances to the application program from one or more BOs, transforming the data into a data format that can be processed by the data quality management system, and storing the transformed data in a database operably connected to the data quality management system. In the manner used here, an ETL job that performs operations at a "BO level" is an ETL job that does not transfer the data to be transferred via an interface of the database in which the BOs are physically stored, but via a Application API queries which corresponds to BOs and corresponding attributes specified in the application program's BO schema. Consequently, an ETL job that performs operations at a "BO level" operates on the basis of the semantic and not the syntactic structure of a data object.

In der hier verwendeten Weise ist eine „Legacy“-Schnittstelle eine bereits vorhandene Schnittstelle einer Software-Anwendung, z.B. eines ERP-Systems. Eine Legacy-Schnittstelle wurde möglicherweise nicht zum Zweck des Datenaustauschs mit einem DQMS, sondern vielmehr beispielsweise für Zwecke entwickelt, die nicht in Verbindung mit Prüfungen der Datenqualität stehen, z.B. zum Zweck des Austauschs von Daten mit anderen Anwendungen oder zur Durchführung von Datenbanktransaktionen durch das Anwendungsprogramm.As used here, a "legacy" interface is an already existing interface of a software application, eg an ERP system. A legacy interface may not have been developed for the purpose of exchanging data with a DQMS, but rather, for example, for purposes unrelated to data quality checks, e.g. for the purpose of exchanging data with other applications or for the application program to perform database transactions .

Ein „Attribut“, das auch als „Parameter“ bezeichnet wird, ist ein Merkmal, das eine bestimmte Entität definiert oder beschreibt. Beispiele für einen Parameter sind „Farbe“, „Höhe“, Adresse“ oder dergleichen.An "attribute," also known as a "parameter," is a characteristic that defines or describes a particular entity. Examples of a parameter are "color", "height", "address" or the like.

In einem Aspekt betrifft die Erfindung ein von einem Computer ausgeführtes Verfahren, um die Datenqualität von Daten eines Anwendungsprogramms durch ein Datenqualitätsmanagementsystem (DQMS) zu prüfen. Das Verfahren weist das Ausführen von mindestens einem Job einer Vielzahl von Jobs durch das DQMS auf. Der mindestens eine Job ist so ausgelegt, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet. Jeder der Jobs gehört zu einem Job-Satz einer Vielzahl von Job-Sätzen, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz und einen zweiten Job-Satz aufweist. Jeder der Job-Sätze stellt eine Kategorie eines Laufzeitverhaltens dar. Die in jedem Job-Satz enthaltenen Jobs wurden entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt. Die Ausführung der in dem ersten Job-Satz enthaltenen Jobs wird von einer Nachricht ausgelöst, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt. Die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs wird von einem Terminierungsprogramm (Scheduler) des DQMS ausgelöst. Das Verfahren weist des Weiteren die Überwachung des Laufzeitverhaltens von dem mindestens einen ausgeführten Job durch das Datenqualitätsmanagementsystem auf, um ein aktuelles Laufzeitverhalten des Jobs festzustellen; und die Neuklassifizierung des mindestens einen überwachten Jobs, indem der Job demjenigen Job-Satz neu zugeordnet wird, welcher das festgestellte aktuelle Laufzeitverhalten darstellt. Vorzugsweise wird die Neuklassifizierung automatisch durchgeführt. Manchen Ausführungsformen entsprechend kann die Neuklassifizierung halbautomatisch durchgeführt werden und die an einen Benutzer gerichtete Aufforderung aufweisen, einer automatisch vorgeschlagenen Neuklassifizierung zuzustimmen. Die Merkmale können vorteilhaft sein, da in Abhängigkeit vom Laufzeitverhalten eines die Datenqualität prüfenden Jobs der Auslösemechanismus, der die Ausführung des Jobs einleitet, geändert werden kann. Jobs, bei denen festgestellt wurde, dass sie in einem verhältnismäßig kurzen Zeitraum ausgeführt werden können, können als Reaktion auf eine Nachricht, d.h. ereignisgesteuert, ausgeführt werden, Jobs, die ein anderes Laufzeitverhalten aufweisen, z.B. eine längere Ausführungszeit, können an einen Zeitplan gebunden ausgeführt werden. Dies kann im Zusammenhang mit einem DQMS besonders vorteilhaft sein, da die Terminierung einer bestimmten Art von Datenqualitätsprüfungen, z.B. Prüfungen mit einer langen Ausführungszeit, Prüfungen, die externe Datenressourcen erforderlich machen, Prüfungen, die ein Datenprotokoll auswerten usw., von einem Scheduler dann angestoßen werden kann, wenn die Verarbeitungslast gering ist, wenn der Netzwerkverkehr zu den externen Ressourcen gering ist und/oder wenn nur wenige Ereignisse die Übergabe von Nachrichten bewirken, die die Ausführung der Jobs in dem ersten Job-Satz auslösen. Das Anwendungsprogramm kann auch als eine externe Ressource betrachtet werden, z.B., wenn ein oder mehrere BOs des Anwendungsprogramms ausgewertet werden müssen, die noch nicht in das Datenqualitätsmanagementsystem importiert worden sind. Die Klassifizierung der Jobs in Abhängigkeit von einem überwachten statt einem vorher festgelegten und geschätzten Laufzeitverhalten kann im Zusammenhang mit einem DQMS vorteilhaft sein, da das tatsächliche Laufzeitverhalten einer Datenqualitätsprüfung von der Art der gespeicherten Daten abhängen kann und somit möglicherweise nicht vorhersagbar ist. Folglich können die Merkmale für ein äußerst flexibles DQMS sorgen, das in der Lage ist, Datenprüfungen in Abhängigkeit von ihrem tatsächlichen Laufzeitverhalten neu zu klassifizieren, wobei gleichzeitig auch der Zeit- und Arbeitsaufwand des Bedieners für die Verwaltung des DQMS und für die Verwaltung der Jobausführung verringert wird, da sowohl die nachrichtengesteuerten als auch die vom Scheduler gesteuerten Jobs vollautomatisch ausgeführt werden können.In one aspect, the invention relates to a computer-executed method for checking the data quality of data from an application program using a data quality management system (DQMS). The method includes the DQMS executing at least one of a plurality of jobs. The at least one job is designed to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to one of a plurality of job sets, the plurality of job sets including at least a first job set and a second job set. Each of the job sets represents a category of run-time behavior. The jobs contained in each job set have been classified into the run-time behavior categories according to their respective run-time behavior. The execution of the jobs contained in the first job set is triggered by a message that the data quality management system receives from the application program. The execution of the jobs contained in the second job record is triggered by a scheduling program (scheduler) of the DQMS. The method further includes the data quality management system monitoring the runtime behavior of the at least one executed job to determine a current runtime behavior of the job; and reclassifying the at least one monitored job by reassigning the job to the job set that represents the determined current runtime behavior. Preferably, the reclassification is performed automatically. According to some embodiments, the reclassification may be performed semi-automatically and may include prompting a user to consent to an automatically proposed reclassification. The features can be beneficial because, depending on the runtime behavior of a data quality checking job, the triggering mechanism that initiates execution of the job can be changed. Jobs that have been determined to be able to run in a relatively short period of time can be run in response to a message, i.e. event-driven, jobs that have different runtime behavior, e.g. a longer run time, can be run tied to a schedule will. This can be particularly advantageous in the context of a DQMS, since the scheduling of a certain type of data quality check, e.g. checks with a long execution time, checks that require external data resources, checks that evaluate a data log, etc., are then triggered by a scheduler when the processing load is light, when network traffic to the external resources is light, and/or when only a few events cause messages to be submitted that trigger the execution of the jobs in the first job set. The application program can also be considered as an external resource, e.g. if one or more BOs of the application program have to be evaluated that have not yet been imported into the data quality management system. The classification of the jobs depending on a monitored rather than a previously determined and estimated runtime behavior can be advantageous in connection with a DQMS, since the actual runtime behavior of a data quality check can depend on the type of data stored and may therefore not be predictable. Consequently, the features can provide a highly flexible DQMS capable of reclassifying data checks depending on their actual run-time behavior while also reducing operator time and effort in managing the DQMS and managing job execution because both the message-controlled jobs and the jobs controlled by the scheduler can be executed fully automatically.

Gemäß Ausführungsformen wird die Nachricht durch das DQMS von dem Anwendungsprogramm empfangen, nachdem das Anwendungsprogramm eine Datenbanktransaktion zur Speicherung der Daten in einer ersten Datenbank durchgeführt hat, welche mit dem Anwendungsprogramm betriebsfähig verbunden ist. Die Nachricht weist mindestens einen Teil der Daten auf, deren Qualität ausgewertet werden soll, z.B. bestimmte Daten, die angeben, welche der Attribute eines BO in Verbindung mit dem geänderten Attributwert geändert werden sollen. Die Transaktion wird angehalten, bis das Anwendungsprogramm eine Antwort von dem DQMS empfängt, die angibt, dass die Daten die Qualitätskriterien erfüllen, welche von einem oder mehreren der Jobs ausgewertet wurden. Wenn die Antwort angibt, dass die Kriterien nicht erfüllt werden, wird die Transaktion abgebrochen oder ein Benutzer wird aufgefordert, zu entscheiden, ob die Transaktion dennoch durchgeführt werden soll. Alternativ können dem Benutzer Mittel an die Hand gegeben werden, um die Transaktion mit geänderten Transaktionsdaten erneut auszuführen. Die Merkmale können vorteilhaft sein, da sie es dem DQMS ermöglichen können, die Ausführung von Jobs, die in bestimmten Job-Sätzen, z.B. in dem ersten Job-Satz, enthalten sind, transaktionsgesteuert und proaktiv auszulösen. Das bedeutet, dass die Transaktion anhält, bis die transaktionsgesteuerten Prüfungen der Datenqualität, die in manchen Jobs des ersten Job-Satzes angegeben sind, abgeschlossen sind und eine Antwort zurückgeschickt haben, die angibt, dass die Daten die ausgewerteten Qualitätskriterien erfüllen. Andere Prüfungen der Datenqualität, z.B. Prüfungen, die von den Jobs in dem zweiten Job-Satz ausgeführt und von einem Scheduler ausgelöst werden, werden nicht als Reaktion auf die Transaktion ausgeführt. Somit muss das Anwendungsprogramm nicht warten, bis die Jobs abgeschlossen sind, und Engpässe, die die Ausführung des Anwendungsprogramms verlangsamen, können vermieden werden.According to embodiments, the message is received by the DQMS from the application program after the application program has performed a database transaction for storing the data in a first database operably connected to the application program. The message includes at least part of the data whose quality is to be evaluated, eg certain data indicating which of the attributes of a BO are to be changed in connection with the changed attribute value. The transaction is suspended until the application program receives a response from the DQMS indicating that the data meets the quality criteria evaluated by one or more of the jobs. If the response indicates that the criteria are not met, the transaction is aborted or a user is prompted to decide whether to proceed with the transaction anyway. Alternatively, the user may be provided with a means to change the Trans Re-execute action with changed transaction data. The features can be advantageous because they can enable the DQMS to trigger the execution of jobs contained in certain job sets, eg in the first job set, in a transaction-controlled and proactive manner. This means that the transaction stalls until the transaction-driven data quality checks specified in some jobs of the first job set have completed and returned a response indicating that the data meets the evaluated quality criteria. Other data quality checks, such as checks performed by the jobs in the second job set and triggered by a scheduler, are not performed in response to the transaction. Thus, the application program does not have to wait for the jobs to complete, and bottlenecks that slow down the execution of the application program can be avoided.

Gemäß Ausführungsformen weisen die Job-Sätze des Weiteren einen dritten Job-Satz auf. Die Ausführung von Jobs, die in dem dritten Job-Satz enthalten sind, wird von dem Scheduler regelmäßig und darüber hinaus nach dem Empfang einer Nachricht ausgelöst, welche von dem Anwendungsprogramm nach einer transaktionsbasierten Änderung von einem der Geschäftsobjekte, die dem Job zugewiesen sind, gesendet wird. Die Ausführung der Jobs des zweiten Job-Satzes wird einzig und allein von dem Scheduler regelmäßig ausgelöst. Der Scheduler kann die Ausführung der Jobs in dem dritten Job-Satz gemäß einem anderen Schema (z.B. häufiger) als in dem zweiten Job-Satz auslösen. Die Verwendung eines dritten Job-Satzes ist jedoch optional. Jeder beliebige der Jobs, deren überwachte Ausführungszeit einen ersten Zeit-Schwellwert unterschreitet oder gleich einem ersten Zeit-Schwellwert ist, wird als ein Job klassifiziert, der zu dem ersten Job-Satz oder zu dem dritten Job-Satz gehört. Jeder beliebige der Jobs, deren überwachte Ausführungszeit den ersten Zeit-Schwellwert überschreitet, wird als ein Job klassifiziert, der zu dem zweiten Job-Satz gehört. Die Merkmale können vorteilhaft sein, da sie für eine äußerst differenzierte Verwaltung von Jobs, die Daten prüfen, sorgen. Falls ein bestimmter Job, der eine Prüfung der Datenqualität durchführt und zuvor aufgrund dessen, dass er zu dem ersten Job-Satz gehört, als ein proaktiver Job mit einer kurzen Ausführungszeit ausgeführt worden ist, überwacht und als ein Job mit einer langen Ausführungszeit festgestellt wird, z.B. aufgrund einer Änderung bei den zugrunde liegenden Datensätzen oder aufgrund einer Änderung bei der Antwortzeit von einigen zusätzlichen internen oder externen Datenressourcen, wird sein Auslösemechanismus durch eine Neuklassifizierung des Jobs und eine Neuzuordnung des Jobs zu beispielsweise dem zweiten Job-Satz zwangsläufig geändert. Als Folge der Neuzuordnung ist der Job nun kein von einer Transaktion ausgelöster, proaktiver, Daten prüfender Job, sondern vielmehr ein an einen Zeitplan gebundener, reaktiver, Daten prüfender Job. Folglich braucht der Bediener keine wie auch immer gearteten Eventualitäten zu berücksichtigen, die sich auf die Laufzeit eines Jobs auswirken können, um anzugeben, ob der Job als ein proaktiver oder als ein reaktiver Job ausgeführt werden soll. Bei Verwendung von Ausführungsformen der Erfindung wird sich der Bediener gegebenenfalls eher auf die automatische, in Abhängigkeit von dem überwachten Laufzeitverhalten erfolgende Neuklassifizierung der Jobs verlassen, die sich ebenfalls auf den Auslösemechanismus (transaktionsbasiert oder an einen Zeitplan gebunden) zum Abruf des jeweiligen Jobs auswirken kann. Dies kann besonders vorteilhaft in einem DQMS sein, in dem ein transaktionsgesteuerter, proaktiver Job, der mehr Zeit in Anspruch nimmt als erwartet, die Anwendung deutlich verlangsamen kann, da die Transaktion bis zum Empfang einer Antwort angehalten wird. In Abhängigkeit von der Ausführungsform kann der erste Zeit-Schwellwert im Bereich von einer oder mehreren Minuten, bevorzugt unter 30 Sekunden und vorzugsweise sogar unter 10 Sekunden liegen, um eine Leistungsbeeinträchtigung einer Benutzerinteraktion zu vermeiden.According to embodiments, the job sets further include a third job set. Execution of jobs included in the third job set is periodically and additionally triggered by the scheduler upon receipt of a message sent by the application program after a transaction-based change of one of the business objects assigned to the job becomes. The execution of the jobs of the second job set is regularly triggered solely by the scheduler. The scheduler can trigger the execution of the jobs in the third job set according to a different scheme (e.g. more frequently) than in the second job set. However, using a third job set is optional. Any of the jobs whose monitored execution time is less than or equal to a first time threshold is classified as a job belonging to the first job set or the third job set. Any of the jobs whose monitored execution time exceeds the first time threshold is classified as a job belonging to the second job set. The features can be beneficial as they provide highly granular management of jobs that inspect data. If a particular job that performs a data quality check and has previously been executed as a proactive job with a short execution time due to belonging to the first job set is monitored and determined as a job with a long execution time, e.g. due to a change in the underlying datasets or due to a change in the response time of some additional internal or external data resources, its triggering mechanism is inevitably changed by reclassifying the job and reassigning the job to, for example, the second job set. As a result of the remapping, the job is now not a transaction-triggered, proactive, data-checking job, but rather a scheduled, reactive, data-checking job. Consequently, the operator does not need to consider any contingencies that may affect the runtime of a job in order to specify whether the job should be run as a proactive or reactive job. Using embodiments of the invention, the operator may be more likely to rely on the automatic reclassification of jobs based on monitored runtime behavior, which may also affect the triggering mechanism (transactional or scheduled) for retrieving each job. This can be particularly beneficial in a DQMS, where a transaction-driven, proactive job that takes longer than expected can significantly slow down the application as the transaction stalls until a response is received. Depending on the embodiment, the first time threshold may be in the range of one or more minutes, preferably under 30 seconds, and preferably even under 10 seconds to avoid degrading the performance of a user interaction.

Gemäß Ausführungsformen sind allen Jobs, die in demselben Job-Satz der Job-Sätze enthalten sind, ein oder mehrere Klassifizierungsmerkmale gemein. Die Neuklassifizierung von dem mindestens einen Job weist die Festlegung eines Werts für eines oder mehrere der Klassifizierungsmerkmale und die Neuklassifizierung des Jobs gemäß den festgelegten Werten der Klassifizierungsmerkmale auf. Das eine oder die mehreren Klassifizierungsmerkmale können ein Wiederholungsparameter sein, der angibt, ob der Job, dem ein entsprechender Parameterwert zugewiesen wurde, regelmäßig ausgeführt werden kann; oder eine Gesamtausführungszeit des Jobs; oder eine Fähigkeit des Jobs, auf eine oder mehrere externe Ressourcen zuzugreifen, um die Qualität der Daten auszuwerten; oder eine beliebige Kombination von zwei oder mehr der Klassifizierungsmerkmale. Dies kann vorteilhaft sein, da eine sehr differenzierte Klassifizierung von Jobs und folglich eine differenzierte Kontrolle über den Job-Auslösemechanismus vorgesehen werden kann. Zum Beispiel kann der Scheduler verschiedene Job-Auslöseschemata für verschiedene Job-Sätze aufweisen. Ein Bediener kann beispielsweise mittels eines einem jeden Job zugewiesenen Wiederholungsparameters oder mittels einer entsprechenden Regel, die den Job codiert, involviert werden, wenn ein bestimmter Job wiederholt oder nicht wiederholt ausgeführt werden soll. Indem man berücksichtigt, ob ein Job Daten von zwei oder mehr BOs auswertet und/oder Daten eines BO in Verbindung mit Daten, die von einer externen Ressource abgerufen werden sollen, auswertet, wird überdies gegebenenfalls eine Klassifizierung von Jobs auf der Grundlage des „Wissens“ möglich, dass der Job zumindest potenziell zeitaufwendig sein könnte, beispielsweise, weil die Möglichkeit besteht, dass eine Netzwerkverbindung zu der externen Ressource langsam ist. Folglich kann jeder Job, der möglicherweise langsam ausgeführt wird, z.B. aufgrund der Auswertung von externen Daten, in beispielsweise den zweiten Job-Satz eingeordnet werden, um zu gewährleisten, dass der Job nicht als ein proaktiver, die Datenqualität prüfender Job ausgeführt wird, der das Anwendungsprogramm dadurch verlangsamen könnte, dass eine Transaktion angehalten wird.According to embodiments, all jobs included in the same job set of job sets have one or more classification features in common. Reclassifying the at least one job comprises setting a value for one or more of the classifiers and reclassifying the job according to the set values of the classifiers. The one or more classification characteristics may be a recurrence parameter indicating whether the job assigned a corresponding parameter value can be run regularly; or a total execution time of the job; or an ability of the job to access one or more external resources to evaluate the quality of the data; or any combination of two or more of the classification features. This can be advantageous since a very fine-grained classification of jobs and consequently a fine-grained control over the job-triggering mechanism can be provided. For example, the scheduler can have different job release schemes for different job sets. For example, an operator may be involved if a particular job is to be repeated or not repeated, by means of a recurrence parameter assigned to each job or by means of a corresponding rule encoding the job. Furthermore, by considering whether a job evaluates data from two or more BOs and/or evaluates data from one BO in conjunction with data to be retrieved from an external resource, a classification of jobs on the Based on "knowing" that the job could be at least potentially time consuming, for example because there is a possibility that a network connection to the external resource is slow. Consequently, any job that may run slowly, e.g. due to the evaluation of external data, can be classified in e.g. the second job set to ensure that the job is not run as a proactive data quality checking job that could slow down the application program by halting a transaction.

In Abhängigkeit von der Ausführungsform können die Werte der Klassifizierungsmerkmale von dem DQMS festgelegt werden, indem Programmcode, der dem Job zugrunde liegt, ausgewertet wird, indem ein Kommentar, z.B. ein Klassifizierungsparameter, des Jobs ausgewertet wird, und/oder indem das Laufzeitverhalten des Jobs in Bezug auf das Klassifizierungsmerkmal überwacht wird. Dass ein Job auf eine externe Ressource zugreift, kann beispielsweise als Kommentar an den Job angefügt oder durch Auswertung von Quellcode des Jobs ermittelt werden. Falls der Zugriff auf die externe Ressource die Ausführungszeit des Jobs verlängert, kann der Job in der Folge neu klassifiziert und beispielsweise in den zweiten Job-Satz verschoben werden. Gemäß Ausführungsformen wird jeder der Jobs von einer entsprechenden Regel codiert. Eine Neuklassifizierung von dem mindestens einen Job weist eine Neuklassifizierung der Regel, die den Job codiert, in einen Regelsatz auf, der die Kategorie des Laufzeitverhaltens des Job-Satzes darstellt, dem der Job zugeordnet ist. Die Merkmale können vorteilhaft sein, da ein Bediener des DQMS leicht erkennen und verstehen kann, welche Art von Regel und welcher entsprechende Job gerade als zu einem bestimmten Job-Satz gehörend klassifiziert werden. Dem Bediener kann auch ermöglicht werden, die Regeln beispielsweise über eine grafische Benutzeroberfläche (GUI) zu ändern und dabei ein paar Klassifizierungsparameter hinzuzufügen oder zu ändern, die von dem DQMS neben dem überwachten Laufzeitverhalten als Klassifizierungsmerkmale verwendet werden können, um einen Job und eine entsprechende Regel zu klassifizieren.Depending on the embodiment, the values of the classification features can be defined by the DQMS by evaluating the program code on which the job is based, by evaluating a comment, e.g. a classification parameter, of the job and/or by evaluating the runtime behavior of the job in Is monitored in relation to the classification feature. The fact that a job accesses an external resource can be added to the job as a comment, for example, or can be determined by evaluating the job's source code. If accessing the external resource increases the execution time of the job, the job can subsequently be reclassified and, for example, moved to the second job set. According to embodiments, each of the jobs is encoded by a corresponding rule. A reclassification of the at least one job includes a reclassification of the rule encoding the job into a rule set that represents the runtime behavior category of the job set with which the job is associated. The features can be advantageous because an operator of the DQMS can easily recognize and understand which type of rule and which corresponding job are currently classified as belonging to a certain job set. The operator can also be allowed to change the rules, for example via a graphical user interface (GUI), adding or changing a few classification parameters that can be used by the DQMS as classification characteristics in addition to the monitored run-time behavior to create a job and a corresponding rule to classify.

Gemäß Ausführungsformen wird mindestens ein weiterer Job der Vielzahl der Jobs so ausgelegt, dass er die Qualitätskriterien an einer Kopie von einem der BOs in Verbindung mit weiteren Daten auswertet, wobei es sich bei den weiteren Daten um eine Kopie von mindestens einem weiteren BO und/oder um Daten handelt, die von einer externen Ressource abgeleitet werden. Die erste Datenbank, aus der ein paar fehlende BOs oder fehlende Attributwerte von BOs importiert werden müssen, um eine Kopie eines entsprechenden BO zu erstellen oder zu aktualisieren, kann gemäß Ausführungsformen ebenfalls als eine externe Ressource betrachtet werden. Gemäß Ausführungsformen kann die Art von Jobs, die Operationen an einem BO in Verbindung mit weiteren Daten durchführt, automatisch ermittelt und in den zweiten Job-Satz eingeordnet werden. Die Merkmale können vorteilhaft sein, da Jobs, bei denen die Gefahr groß ist, dass sie möglicherweise zu Jobs mit einer langen Ausführungszeit werden, beispielsweise weil sie an mehreren BOs oder externen Daten Operationen durchführen, von Anfang an als zu dem zweiten Job-Satz gehörende Jobs klassifiziert werden können.According to embodiments, at least one other job of the plurality of jobs is designed to evaluate the quality criteria on a copy of one of the BOs in conjunction with other data, the other data being a copy of at least one other BO and/or is data derived from an external resource. The first database from which a few missing BOs or missing attribute values of BOs have to be imported in order to create or update a copy of a corresponding BO can also be considered as an external resource according to embodiments. According to embodiments, the type of jobs that perform operations on a BO in connection with other data can be automatically determined and classified into the second job set. The features can be advantageous because jobs that are at high risk of possibly becoming long-running jobs, for example because they operate on multiple BOs or external data, are considered to belong to the second job set from the start Jobs can be classified.

Gemäß Ausführungsformen handelt es sich bei den Daten, deren Qualität ausgewertet wird, um Anwendungsdaten und sie weisen eine oder mehrere Kopien von BOs auf, die von einem BO-Schema des Anwendungsprogramms entsprechend angegeben werden. Das Anwendungsprogramm ist mit einer ersten Datenbank betriebsfähig verbunden, in der die BOs gespeichert sind. Die Prüfungen der Datenqualität an Kopien der Daten und nicht an den Daten selbst durchzuführen, kann vorteilhaft sein, da dies die Leistungsfähigkeit des Anwendungsprogramms erhöht, insbesondere, wenn das Anwendungsprogramm und das DQMS auf verschiedenen Datenverarbeitungsmaschinen gehostet werden.According to embodiments, the data whose quality is evaluated is application data and comprises one or more copies of BOs correspondingly specified by a BO schema of the application program. The application program is operably linked to a first database in which the BOs are stored. Performing the data quality checks on copies of the data rather than on the data itself can be advantageous as it increases the performance of the application program, especially when the application program and the DQMS are hosted on different computing machines.

Gemäß Ausführungsformen werden die BOs in der ersten Datenbank gespeichert. Vorzugsweise wird der Dateninhalt der ersten Datenbank über eine Schnittstelle auf BO-Ebene in die zweite Datenbank des DQMS kopiert. Dies kann vorteilhaft sein, da die Ebene von den strukturellen Einzelheiten der ersten Datenbank abstrahiert, was den Datenübertragungsprozess somit allgemeiner und leichter anpassbar an verschiedene Anwendungssysteme macht. Falls sich die internen Strukturen der ersten Datenbank ändern sollten, sind das DQMS und die Schnittstelle, die zum Kopieren der BOs in die zweite Datenbank verwendet wird, folglich nicht von den Änderungen betroffen.According to embodiments, the BOs are stored in the first database. The data content of the first database is preferably copied to the second database of the DQMS via an interface at BO level. This can be advantageous as the level abstracts from the structural details of the first database, thus making the data transfer process more general and more easily adaptable to different application systems. If the internal structures of the first database should change, the DQMS and the interface used to copy the BOs to the second database are therefore not affected by the changes.

Gemäß Ausführungsformen ist das DQMS mit einer zweiten Datenbank betriebsfähig verbunden, wobei die zweite Datenbank eine Kopie der Anwendungsdaten und entsprechende Kopien der BOs in der zweiten Datenbank aufweist. Die Kopien der BOs werden in der zweiten Datenbank entsprechend einer Zuordnung gespeichert, wobei die Zuordnung Strukturelementen der zweiten Datenbank Attribute der BOs des BO-Schemas zuweist. Die Merkmale können vorteilhaft sein, da eine Zuordnung eine einfache Datenstruktur ist, die hauptsächlich aus der Zuweisung besteht. Sie kann auf der Grundlage einer Textdatei oder einer Datenbanktabelle vorgenommen werden, die von einem Benutzer lesbaren und editierbaren Text aufweist. Die Merkmale können vorteilhaft sein, da ein Benutzer die Art der Zuordnungsstruktur leicht verstehen und ändern kann und dabei die Art und Weise anpassen kann, in der die Kopien der BOs in der zweiten Datenbank entsprechend den Erfordernissen der Datenqualitätsprüfungen und der von der zweiten Datenbank auferlegten Rahmenbedingungen gespeichert werden. Sie kann beispielsweise die Datenqualitätsprüfungen beschleunigen, wenn die Struktur der Tabellen und Indizes der zweiten Datenbank, die zur Speicherung der Kopien der BOs verwendet wird, an den entsprechenden Anbieter der zweiten Datenbank angepasst wird.According to embodiments, the DQMS is operably connected to a second database, the second database having a copy of the application data and corresponding copies of the BOs in the second database. The copies of the BOs are stored in the second database according to a mapping, the mapping assigning attributes of the BOs of the BO schema to structure elements of the second database. The features can be beneficial because an association is a simple data structure consisting primarily of assignment. It can be based on a text file or a database table containing user-readable and editable text points. The features can be advantageous because a user can easily understand and change the nature of the mapping structure, thereby adapting the way in which the copies of the BOs are stored in the second database according to the needs of the data quality checks and the constraints imposed by the second database get saved. For example, it can speed up data quality checks if the structure of the tables and indexes of the second database used to store the copies of the BOs is adapted to the corresponding provider of the second database.

Gemäß Ausführungsformen weist das Verfahren des Weiteren den Zugriff durch das DQMS auf das BO-Schema und die Zuordnung auf, um Attribute von BOs, die in dem BO-Schema angegeben sind, zu ermitteln, welche Strukturelementen der zweiten Datenbank zugeordnet werden; und das Erzeugen von einem oder mehreren der Jobs als ETL-Jobs durch das DQMS unter Verwendung des BO-Schemas und/oder der Zuordnung. Die Merkmale können vorteilhaft sein, da in dem Fall, in dem an dem BO-Schema und/oder der Struktur der zweiten Datenbank Änderungen vorgenommen werden sollten, von einem Bediener des DQMS nur geringfügige Anpassungen durchgeführt werden müssten, um das DQMS an die neue Situation anzupassen. Im Grunde muss möglicherweise nur die Zuordnung geändert werden und gegebenenfalls müssen neue ETL-Jobs, die an die Änderungen angepasst werden, erzeugt werden, um die Daten erneut aus der ersten Datenbank in die zweite Datenbank zu laden. Da die ETL-Jobs automatisch unter Verwendung der Zuordnung und des BO-Schemas als Eingabe erzeugt werden, ist der Aufwand, den der Bediener für die Verwaltung des DQMS treiben muss, gegebenenfalls sehr gering.According to embodiments, the method further comprises accessing and mapping the BO schema by the DQMS to determine attributes of BOs specified in the BO schema which structural elements are mapped to the second database; and the DQMS creating one or more of the jobs as ETL jobs using the BO schema and/or the mapping. The features can be advantageous because in the event that changes should be made to the BO schema and/or the structure of the second database, only minor adjustments would have to be made by an operator of the DQMS in order to adapt the DQMS to the new situation to adjust. In essence, only the mapping may need to be changed and new ETL jobs adapted to the changes may need to be created to reload the data from the first database to the second database. Because the ETL jobs are automatically generated using the mapping and BO schema as input, the effort that the operator has to put into managing the DQMS may be very small.

Gemäß Ausführungsformen weist die Vielzahl der Jobs einen oder mehrere ETL-Jobs auf. Die ETL-Jobs weisen erste ETL-Jobs und/oder zweite ETL-Jobs und/oder dritte ETL-Jobs auf. Das Verfahren weist des Weiteren auf: Ausführen der ersten ETL-Jobs, um zunächst die zweite Datenbank anzulegen; wobei der Schritt das Erstellen einer Datenbanktabelle aufweisen kann, die so ausgelegt ist, dass sie Kopien von BOs speichert; und/oder Ausführen der zweiten ETL-Jobs, um die zweite Datenbank mit Kopien der BOs der ersten Datenbank zu füllen; und/oder regelmäßiges Ausführen der dritten ETL-Jobs, um die Kopien der BOs zu aktualisieren. Vorzugsweise werden mindestens einige der dritten ETL-Jobs, welche die zweite Datenbank regelmäßig aktualisieren, auf der Grundlage des ihnen angefügten Kommentars, dass sie regelmäßig ausgeführt werden können, und/oder auf der Grundlage ihres überwachten Laufzeitverhaltens in den zweiten Job-Satz oder in den dritten Job-Satz eingeordnet. Da die Jobs in dem zweiten Job-Satz und in dem dritten Job-Satz von dem Scheduler ausgelöst werden, können die ETL-Jobs, die zur Aktualisierung der zweiten Datenbank verwendet werden, regelmäßig ausgeführt werden, wodurch sich der für die Verwaltung des DQMS erforderliche Zeit- und Arbeitsaufwand verringert und die zweite Datenbank auf dem neuesten Stand gehalten wird. In manchen Ausführungsformen kann auch ein dritter ETL-Job als ein zu dem ersten Job-Satz gehörender Job klassifiziert werden, wodurch gewährleistet wird, dass eine transaktionsbasierte Änderung eines BO eine Aktualisierung der entsprechenden Kopie des BO auslöst.According to embodiments, the plurality of jobs includes one or more ETL jobs. The ETL jobs include first ETL jobs and/or second ETL jobs and/or third ETL jobs. The method further includes: executing the first ETL jobs to initially create the second database; wherein the step may include creating a database table adapted to store copies of BOs; and/or executing the second ETL jobs to populate the second database with copies of the BOs of the first database; and/or periodically running the third ETL jobs to update the copies of the BOs. Preferably, at least some of the third ETL jobs that regularly update the second database, based on the comment attached to them that they can be executed regularly, and / or based on their monitored runtime behavior in the second job set or in the third job set filed. Because the jobs in the second job set and in the third job set are triggered by the scheduler, the ETL jobs used to update the second database can be run regularly, increasing the time required for managing the DQMS Saving time and effort and keeping the second database up to date. In some embodiments, a third ETL job may also be classified as a job belonging to the first job set, thereby ensuring that a transaction-based change to a BO triggers an update of the corresponding copy of the BO.

Gemäß Ausführungsformen weist das Verfahren auf: Empfangen der Nachricht von dem Anwendungsprogramm, wobei die Nachricht eines der in der ersten Datenbank gespeicherten BOs sowie Änderungen angibt, die an dem BO vorgenommen werden sollen; Ändern einer Kopie des BO, wobei die Kopie in der zweiten Datenbank gespeichert wird, wobei die angegebenen Änderungen als Eingabe verwendet werden; wenn die geänderte Kopie des BO nicht alle Daten des BO aufweist, Setzen eines der geänderten Kopie zugewiesenen Vollständigkeitsparameters auf einen Wert, der anzeigt, dass die Kopie ein oder mehrere fehlende Attribute aufweist, welche das Datenqualitätsmanagementsystem noch nicht von dem Anwendungsprogramm empfangen hat. Die Nachricht kann beispielsweise nach dem Einleiten einer Aktualisierungstransaktion (UPDATE) oder einer Erzeugungstransaktion (CREATE) in Bezug auf das BO von dem Anwendungsprogramm gesendet werden.According to embodiments, the method comprises: receiving the message from the application program, the message indicating one of the BOs stored in the first database and changes to be made to the BO; modifying a copy of the BO, the copy being stored in the second database using the specified modifications as input; if the modified copy of the BO does not have all the data of the BO, setting a completeness parameter assigned to the modified copy to a value indicating that the copy has one or more missing attributes that the data quality management system has not yet received from the application program. For example, the message can be sent by the application program after initiating an update transaction (UPDATE) or a create transaction (CREATE) in relation to the BO.

Gemäß Ausführungsformen weist das Speichern der Kopie des BO in der zweiten Datenbank das Kennzeichnen des BO als unvollständig auf, wodurch die an der Kopie des BO erfolgende Auswertung durch beliebige der die Qualität prüfenden Jobs in dem zweiten Job-Satz verhindert wird.According to embodiments, storing the copy of the BO in the second database includes marking the BO as incomplete, thereby preventing any of the quality checking jobs in the second job set from evaluating the copy of the BO.

Gemäß bevorzugten Ausführungsformen werden die Jobs in dem ersten Job-Satz allein durch den Empfang einer Nachricht ausgelöst, die nach einer transaktionsbasierten Änderung eines BO, das dem Job zugewiesen ist, gesendet wird, die Jobs in dem zweiten Job-Satz werden einzig und allein von dem Scheduler regelmäßig ausgelöst und die Jobs in dem dritten Job-Satz werden durch den Empfang einer Nachricht ausgelöst, die nach einer transaktionsbasierten Änderung eines BO, das dem Job zugewiesen ist, gesendet wird und sie werden von dem Scheduler regelmäßig ausgelöst. In Abhängigkeit von dem tatsächlich verwendeten Auslösemechanismus können die die Qualität prüfenden Jobs in dem dritten Job-Satz folglich als proaktive Jobs agieren und dabei die Eingabe von fehlerhaften Daten in die erste Datenbank verhindern, oder sie können reaktiv agieren und dabei jedwede Fehler, die in die erste und die zweite Datenbank eingebracht wurden, melden. Diese „Doppelnutzung“ desselben Jobs und gegebenenfalls derselben Regel kann vorteilhaft sein, da keine Duplikate der Jobs oder Regeln erzeugt werden müssen, um sowohl proaktive als auch reaktive Jobs vorzusehen. Beide Funktionen können von demselben Job bereitgestellt werden, der einmal vom Scheduler und einmal von einer Transaktion ausgelöst wird. Folglich werden eine Duplizierung des Codes vermieden und die Verwaltung des DQMS vereinfacht.According to preferred embodiments, the jobs in the first job set are triggered solely by receipt of a message sent following a transaction-based change of a BO assigned to the job, the jobs in the second job set are triggered solely by scheduled by the scheduler and the jobs in the third job set are scheduled by receiving a message sent after a transaction-based change of a BO assigned to the job and scheduled by the scheduler. Thus, depending on the actual triggering mechanism used, the quality checking jobs in the third job set can be used as Jobs can act proactively, thereby preventing erroneous data from being entered into the first database, or they can act reactively, thereby reporting any errors introduced into the first and second databases. This "dual use" of the same job and possibly the same rule can be advantageous since no duplicate jobs or rules need to be created in order to provide for both proactive and reactive jobs. Both functions can be provided by the same job, triggered once by the scheduler and once by a transaction. Consequently, code duplication is avoided and management of the DQMS is simplified.

Gemäß Ausführungsformen weist eine Neuklassifizierung eines gerade in dem zweiten Job-Satz enthaltenen Jobs, um ein Job des ersten oder des dritten Job-Satzes zu werden, auf: Zugreifen auf eine transaktionsbasierte Zuordnung, wobei die transaktionsbasierte Zuordnung Zuweisungen von ersten BO-Attributen zu für den BO-Typ spezifischen Transaktionen aufweist, die von einer auf Transaktionsebene befindlichen Schnittstelle des Anwendungsprogramms unterstützt werden; wobei eine Zuordnung von einem oder mehreren Attributen zu einer der Transaktionen in der transaktionsbasierten Zuordnung angibt, dass Werte der Attribute obligatorisch in einer Nachricht übertragen werden, die nach einer transaktionsbasierten Änderung eines BO von einem BO-Typ, der die Attribute aufweist, über die Schnittstelle übergeben wird; Feststellen, ob die Qualitätskriterien, die von dem Job an Attributen eines dem Job zugewiesenen BO ausgewertet wurden, ausschließlich an einem oder mehreren Attributen, die als Teil einer Nachricht von dem Anwendungsprogramm gemäß der transaktionsbasierten Zuordnung obligatorisch empfangen werden, Operationen durchführen; falls die Ausführungszeit des Jobs den ersten Verarbeitungszeit-Schwellwert unterschreitet und falls die Qualitätskriterien des Jobs ausschließlich an Attributen Operationen durchführen, deren Werte als Teil einer Nachricht obligatorisch empfangen werden, welche die Ausführung des Jobs auslöst, Neueinordnen des Jobs aus dem zweiten in den ersten oder den dritten Job-Satz; falls die Qualitätskriterien des Jobs auch an Attributen Operationen durchführen, deren Werte nicht als Teil einer Nachricht empfangen werden, welche die Ausführung des Jobs auslöst, nicht erfolgende Neueinordnung des Jobs aus dem zweiten in den ersten oder den dritten Job-Satz, selbst wenn die Ausführungszeit des Jobs den ersten Verarbeitungszeit-Schwellwert unterschreitet. Die Merkmale können vorteilhaft sein, da sie gewährleisten, dass in dem Fall, in dem festgestellt wird, dass ein Job schnell ausgeführt wird, der Job nur dann in den ersten Job-Satz oder in den dritten Job-Satz eingeordnet wird, wenn sichergestellt ist, dass die Nachricht, welche die Ausführung des Jobs in der Zukunft auslösen kann, den Job mit allen für die Durchführung der Qualitätsprüfungen erforderlichen Daten versieht. Jobs, welche die Qualität prüfen und in dem ersten und/oder dem dritten Job-Satz enthalten sind, werden aktiviert, um ihre jeweiligen Qualitätskriterien an der Kopie des BO ungeachtet des Werts des Vollständigkeitsparameters auszuwerten, da sie nur als Jobs klassifiziert werden, die zu dem ersten oder dem dritten Job-Satz gehören, wenn gemäß der transaktionsbasierten Zuordnung sichergestellt ist, dass jedwede Nachricht, welche die Ausführung des Jobs auslöst, den Job mit allen BO-Attributen versieht, die von den Qualitätskriterien des Jobs ausgewertet wurden.According to embodiments, a reclassification of a job currently contained in the second job set to become a job of the first or third job set comprises accessing a transaction-based mapping, the transaction-based mapping including assignments of first BO attributes to for comprises BO-type specific transactions supported by a transaction-level interface of the application program; wherein an association of one or more attributes with one of the transactions in the transaction-based association indicates that values of the attributes are mandatorily transmitted in a message following a transaction-based change of a BO from a BO type having the attributes via the interface is handed over; determining whether the quality criteria evaluated by the job on attributes of a BO assigned to the job operate exclusively on one or more attributes that are mandatorily received as part of a message by the application program according to the transaction-based mapping; if the execution time of the job falls below the first processing time threshold and if the quality criteria of the job only operate on attributes whose values are obligatorily received as part of a message that triggers the execution of the job, reordering the job from the second to the first or the third job set; if the job's quality criteria also operate on attributes whose values are not received as part of a message that triggers the job's execution, failing to reclassify the job from the second to the first or third job set, even if the execution time of the job falls below the first processing time threshold. The features can be advantageous because they ensure that in the event that a job is determined to be executed quickly, the job is only classified into the first job set or the third job set if it is assured , that the message, which can trigger the execution of the job in the future, provides the job with all the data required to carry out the quality checks. Jobs that check the quality and are included in the first and/or the third job set are activated to evaluate their respective quality criteria on the copy of the BO regardless of the value of the completeness parameter, since they are only classified as jobs that belong to belong to the first or the third job set if, according to the transaction-based mapping, it is ensured that any message which triggers the execution of the job provides the job with all BO attributes evaluated by the job's quality criteria.

Gemäß Ausführungsformen führen mindestens ein paar der Jobs in dem zweiten Job-Satz eine Datenqualitätsprüfung an einer Kopie eines BO, die in der zweiten Datenbank gespeichert ist, in Verbindung mit weiteren Daten durch. Bei den weiteren Daten kann es sich um eine Kopie von mindestens einem weiteren BO und/oder um Daten handeln, die von einer externen Ressource abgeleitet werden. Die Merkmale können vorteilhaft sein, da die Ausführung einer beliebigen Art eines die Qualität prüfenden Jobs, der in dem zweiten Job-Satz enthalten ist, welcher vorzugsweise alle global ausgeführten, die Datenqualität prüfenden Jobs aufweist, verhindert werden kann, bis alle ausgewerteten Kopien der BOs aktualisiert und als „vollständig“ gekennzeichnet sind.According to embodiments, at least some of the jobs in the second job set perform a data quality check on a copy of a BO stored in the second database in conjunction with other data. The other data can be a copy of at least one other BO and/or data derived from an external resource. The features may be advantageous because execution of any type of quality checking job contained in the second job set, which preferably includes all globally executed data quality checking jobs, can be prevented until all evaluated copies of the BOs updated and marked as complete.

Gemäß Ausführungsformen weist das Ausführen der dritten ETL-Jobs auf: Auswerten einer jeden Kopie eines entsprechenden der BOs, wobei die Kopien in der zweiten Datenbank gespeichert werden, um festzustellen, ob der Kopie ein Wert eines Vollständigkeitsparameters zugewiesen wurde, der anzeigt, dass ein oder mehrere Attribute des BO, von dem die Kopie abgeleitet ist, fehlende Attribute sind, die das DQMS noch nicht von dem Anwendungsprogramm empfangen hat; falls einer Kopie eines BO, welcher der dritte ETL-Job zugewiesen wurde, ein Parameterwert zugewiesen wurde, der Unvollständigkeit anzeigt, Abrufen des einen oder der mehreren fehlenden Attribute von dem Anwendungsprogramm; Aktualisieren der Kopie des BO und dabei Vervollständigen der Kopie mit den abgerufenen Attributen und Ändern des Werts des Vollständigkeitsparameters der Kopie, um die Vollständigkeit der Kopie anzugeben. Die Merkmale können vorteilhaft sein, da die Ausführung der dritten Art von ETL-Jobs sicherstellt, dass die Kopien der BOs, die in der zweiten Datenbank gespeichert sind, insbesondere die Kopien, die von einer Transaktion ausgelöste Änderungen erfahren haben, alle Daten aufweisen, um bestimmte Jobs zu aktivieren, welche globale Datenprüfungen durchführen (d.h. Datenprüfungen, welche die Qualität von Daten einer bestimmten Kopie eines BO in Kombination mit weiteren Daten auswerten). Wenn nicht, werden die fehlenden Daten, insbesondere fehlende Attributwerte, mit Hilfe der dritten ETL-Jobs aus der ersten Datenbank abgerufen. Zum Beispiel könnte eine Transaktion eine Änderung eines bestimmten BO auslösen und in der Folge kann eine geänderte Kopie des BO in der zweiten Datenbank gespeichert werden. Um bestimmte Datenqualitätsprüfungen durchzuführen, kann es notwendig sein, weitere Attribute des BO auszuwerten, die nicht geändert und nicht als Teil der Nachricht an das DQMS übertragen worden sind. Möglicherweise sind in der ersten Datenbank einige Änderungen an Daten ausgeführt worden, ohne dass die Übergabe einer Nachricht ausgelöst wurde. Um also zu gewährleisten, dass alle von einem bestimmten Job ausgewerteten Daten auch in der zweiten Datenbank enthalten und auf dem neuesten Stand sind, können die dritten ETL-Jobs ausgewählte Daten aus der ersten Datenbank abrufen, die Kopie des BO mit den abgerufenen Daten vervollständigen und dabei ein paar die Datenqualität prüfende Jobs des zweiten Job-Satzes aktivieren, die folglich reaktiv ausgeführt werden, um an auf dem neuesten Stand befindlichen Kopien von BOs, die alle auszuwertenden Daten aufweisen, Operationen durchzuführen.According to embodiments, executing the third ETL jobs comprises: evaluating each copy of a corresponding one of the BOs, the copies being stored in the second database, to determine whether the copy has been assigned a value of a completeness parameter indicating that a or several attributes of the BO from which the copy is derived are missing attributes that the DQMS has not yet received from the application program; if a copy of a BO assigned the third ETL job has been assigned a parameter value indicating incompleteness, retrieving the one or more missing attributes from the application program; Updating the copy of the BO, thereby completing the copy with the retrieved attributes and changing the value of the copy's completeness parameter to indicate the completeness of the copy. The features can be advantageous because the execution of the third type of ETL jobs ensures that the copies of the BOs stored in the second database, in particular the copies that have undergone transaction-triggered changes, have all the data to activate specific jobs that perform global data checks (ie data checks that evaluate the quality of data from a specific copy of a BO in combination with other data). If not, the missing data, in particular missing attribute values retrieved from the first database using the third ETL jobs. For example, a transaction could trigger a change of a particular BO and subsequently a changed copy of the BO can be stored in the second database. In order to carry out certain data quality checks, it may be necessary to evaluate other attributes of the BO that have not been changed and have not been transferred to the DQMS as part of the message. Some changes may have been made to data in the first database without triggering a message submission. So to ensure that all data evaluated by a given job is also contained and up to date in the second database, the third ETL jobs can retrieve selected data from the first database, complete the copy of the BO with the retrieved data and thereby activating a few data quality checking jobs of the second job set, which are thus executed reactively to perform operations on up-to-date copies of BOs that have all the data to be evaluated.

Gemäß Ausführungsformen wurde jedem der Jobs eine Definition eines BO-Schemas von entsprechenden der BOs zugewiesen. Falls es noch keine Kopie des in der Nachricht angegebenen BO gibt, kann die Kopie mit Hilfe der zugewiesenen Definition eines Anwendungs-BO-Schemas des angegebenen BO erzeugt werden, wobei die Kopie des BO entsprechend der in der Nachricht (und in der Transaktion, welche die Übergabe der Nachricht ausgelöst hat) angegebenen Änderung geändert werden kann. Das Verfahren weist des Weiteren auf: Ändern einer Kopie eines in der Nachricht angegebenen BO gemäß Daten, die in der Nachricht enthalten sind; Kennzeichnen des einen oder der mehreren Jobs, die zu der Schema-Definition des in der Nachricht angegebenen BO gehören, wobei die gekennzeichneten Jobs in dem ersten oder in dem dritten Job-Satz enthalten sind; Ausführen des einen oder der mehreren gekennzeichneten Jobs an der geänderten Kopie des BO, um auszuwerten, ob die von den Jobs ausgewerteten Qualitätskriterien von der geänderten Kopie erfüllt werden; und Senden einer Antwort an das Anwendungsprogramm, wobei die Antwort angibt, ob die geänderte Kopie des ersten Datenobjekts die ausgewerteten Qualitätskriterien erfüllt. Dass die Jobs Operationen auf der BO-Ebene und nicht auf der Ebene der in der Nachricht empfangenen Transaktionsdaten durchführen, kann vorteilhaft sein, da das DQMS von den Besonderheiten der Struktur der ersten Datenbank losgelöst ist; es ist nur an die semantische Struktur von BOs gebunden, die in dem BO-Schema der Anwendung angegeben sind. Dies kann die Verwaltung des DQMS vereinfachen. Die Jobs können durch entsprechende BOs zugeordnet werden, beispielsweise mittels einer Kennungs-(ID-)Zuordnung von Job-Typ-IDs und BO-Typ-IDs. Die Nachricht kann eine ID eines BO-Typs aufweisen.According to embodiments, each of the jobs has been assigned a definition of a BO schema from corresponding ones of the BOs. If there is no copy of the BO specified in the message yet, the copy can be created using the assigned definition of an application BO schema of the specified BO, where the copy of the BO according to the one specified in the message (and in the transaction which triggered the delivery of the message) specified change can be changed. The method further comprises: changing a copy of a BO specified in the message according to data contained in the message; identifying the one or more jobs associated with the schema definition of the BO identified in the message, the identified jobs being included in one of the first and third job sets; performing the one or more identified jobs on the modified copy of the BO to evaluate whether the quality criteria evaluated by the jobs are met by the modified copy; and sending a response to the application program, the response indicating whether the modified copy of the first data object meets the evaluated quality criteria. The fact that the jobs perform operations at the BO level and not at the level of the transaction data received in the message can be advantageous since the DQMS is detached from the specifics of the structure of the first database; it is bound only to the semantic structure of BOs specified in the application's BO schema. This can simplify the administration of the DQMS. The jobs can be assigned by corresponding BOs, for example by means of an identifier (ID) assignment of job type IDs and BO type IDs. The message may have an ID of a BO type.

Gemäß Ausführungsformen wird die Nachricht über eine erste Legacy-Schnittstelle des Anwendungsprogramms empfangen, wobei die erste Legacy-Schnittstelle für Datenqualitätsprüfungen entwickelt oder verwendet wurde, die an Transaktionsdaten durchgeführt werden sollen, wobei es sich bei einer Transaktion um eine Änderung oder eine Speicherung von einem der BOs in der ersten Datenbank handelt, wobei die Nachricht Transaktionsdaten des BO aufweist. Die erste Schnittstelle wurde möglicherweise für proaktive, anwendungsprogramminterne Qualitätsprüfungen verwendet. Das Verfahren weist des Weiteren das Verwenden einer zweiten Legacy-Schnittstelle des Anwendungsprogramms auf, um in der ersten Datenbank gespeicherte Daten abzurufen, um die zweite Datenbank erstmalig über einen oder mehrere der Jobs, bei denen es sich um ETL-Jobs handelt, zu füllen und/oder um sie zu aktualisieren. Die zweite Legacy-Schnittstelle wurde möglicherweise für Datenaustauschzwecke auf einer BO-Ebene entwickelt. Die ETL-Jobs führen Operationen auf einer BO-Ebene aus. Die Merkmale können vorteilhaft sein, da Legacy-Schnittstellen, die es bereits in vielen Anwendungen und ERP-Systemen gibt, verwendet werden können und Code in dem Anwendungsprogramm möglicherweise nicht umgeschrieben werden muss. Überdies kann durch die Merkmale ermöglicht werden, ein DQMS vorzusehen, das in der Lage ist, sowohl transaktionsbasierte, proaktive Prüfungen der Datenqualität als auch Prüfungen, die auf BO-Ebene durchgeführt werden, zu integrieren. Prüfungen auf BO-Ebene können zum Beispiel notwendig sein, um die Datenqualität und die Konsistenz einer Vielzahl von BOs auszuwerten. Folglich sind Ausführungsformen der Erfindung gegebenenfalls in der Lage, Daten auf Transaktionsebene über die Nachricht zu empfangen, die Daten zur Erzeugung und/oder Änderung einer entsprechenden Kopie eines BOs und zur Ausführung einer transaktionsgesteuerten und proaktiven Qualitätsprüfung mittels der die Datenqualität prüfenden Jobs in dem ersten und in dem dritten Job-Satz sowie der an einen Zeitplan gebundenen, reaktiven, die Datenqualität prüfenden Jobs des zweiten und des dritten Job-Satzes innerhalb ein und desselben DQMS zu verwenden. Dadurch wird ein Problem der Datenqualitätsmanagementsysteme nach dem Stand der Technik überwunden, die oftmals entweder auf rein transaktionsbasierte, proaktive Datenqualitätsmanagementsysteme oder auf der BO-Ebene basierte, globale und reaktive Datenqualitätsmanagementsysteme beschränkt waren. Vorzugsweise führen alle die Datenqualität prüfenden Jobs, die in einem beliebigen der Job-Sätze enthalten sind, Operationen an Kopien der BOs und nicht direkt an Transaktionsdaten durch, welche nicht über die semantische Struktur der entsprechenden BOs verfügen. Zum Beispiel können die Kopien der in der zweiten Datenbank gespeicherten BOs mit Hilfe von einem der ETL-Jobs erzeugt werden, die in Abhängigkeit von der semantischen Struktur der BOs erzeugt wurden, welche in dem BO-Schema der Anwendung angegeben ist, oder sie können von dem DQMS aus den Transaktionsdaten erzeugt werden, die in der empfangenen Nachricht enthalten sind, indem das BO-Schema der Anwendung in Verbindung mit der Zuordnung verwendet wird. Nachdem die Kopie des BOs erzeugt oder gelesen wurde, für die ein die Datenqualität prüfender Job durchgeführt werden soll, wird der Job an der Kopie des BOs und nicht an den bloßen Transaktionsdaten in der Nachricht ausgeführt.According to embodiments, the message is received via a first legacy interface of the application program, the first legacy interface being developed or used for data quality checks to be performed on transaction data, a transaction being a change or a storage of one of the BOs is in the first database, the message having transaction data of the BO. The first interface may have been used for proactive, in-application quality checks. The method further includes using a second legacy interface of the application program to retrieve data stored in the first database, to initially populate the second database via one or more of the jobs that are ETL jobs, and /or to update them. The second legacy interface may have been developed for data exchange purposes at a BO level. The ETL jobs perform operations at a BO level. The features can be advantageous because legacy interfaces that already exist in many applications and ERP systems can be used and code in the application program may not need to be rewritten. In addition, the features may allow for the provision of a DQMS capable of integrating transaction-based, proactive data quality checks as well as checks performed at BO level. For example, checks at BO level may be necessary to evaluate the data quality and consistency of a large number of BOs. Consequently, embodiments of the invention may be able to receive transaction-level data via the message containing data for creating and/or modifying a corresponding copy of a BO and for performing a transaction-driven and proactive quality check using the data quality checking jobs in the first and in the third job set as well as the scheduled, reactive, data quality checking jobs of the second and third job set within one and the same DQMS. This overcomes a problem of prior art data quality management systems, which were often limited to either purely transaction-based, proactive data quality management systems or BO-level based, global and reactive data quality management systems. Preferably, all data quality checking jobs included in any of the job sets perform operations on copies of the BOs and not directly on transactional data, which does not have the semantic structure of the corresponding BOs. For example, the copies of the BOs stored in the second database can be made using be generated by one of the ETL jobs generated depending on the semantic structure of the BOs specified in the application's BO schema, or they may be generated by the DQMS from the transaction data contained in the received message by using the application's BO schema in conjunction with the mapping. After the copy of the BO has been created or read for which a data quality checking job is to be performed, the job is performed on the copy of the BO and not on the mere transactional data in the message.

In einem weiteren Aspekt betrifft die Erfindung einen von einem Computer lesbaren Datenträger, welcher einen damit realisierten, von einem Computer lesbaren Programmcode aufweist, der, wenn er von einem Prozessor ausgeführt wird, den Prozessor veranlasst, ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.In a further aspect, the invention relates to a computer-readable data carrier which has a computer-readable program code implemented therewith which, when it is executed by a processor, causes the processor to carry out a method according to one of the preceding claims.

In einem weiteren Aspekt betrifft die Erfindung ein Computersystem, das ein DQMS aufweist. Das DQMS weist eine Verarbeitungsengine, ein Überwachungsmodul, ein Klassifizierungsmodul und einen Scheduler auf. Das DQMS ist so ausgelegt, dass es die Datenqualität von Daten eines Anwendungsprogramms prüft. Die Verarbeitungsengine ist so ausgelegt, dass sie mindestens einen Job einer Vielzahl von Jobs ausführt, wobei der mindestens eine ausgeführte Job so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet. Jeder der Jobs gehört zu einem Job-Satz einer Vielzahl von Job-Sätzen, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz und einen zweiten Job-Satz aufweist. Jeder Job-Satz der Job-Sätze stellt eine Kategorie eines Laufzeitverhaltens dar, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden. Die Ausführung der in dem ersten Job-Satz enthaltenen Jobs wird von einer Nachricht ausgelöst, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt. Die Ausführung der in dem zweiten Job-Satz und in dem dritten Job-Satz enthaltenen Jobs wird von einem Scheduler des Datenqualitätsmanagementsystems ausgelöst. Das Überwachungsmodul ist so ausgelegt, dass es das Laufzeitverhalten von mindestens einem der ausgeführten Jobs überwacht, um ein aktuelles Laufzeitverhalten des Jobs festzustellen. Das Klassifizierungsmodul ist so ausgelegt, dass es den mindestens einen überwachten Job automatisch oder halbautomatisch neu klassifiziert, indem es den Job demjenigen Job-Satz neu zuordnet, welcher das festgestellte aktuelle Laufzeitverhalten darstellt.In a further aspect, the invention relates to a computer system which has a DQMS. The DQMS has a processing engine, a monitoring module, a classification module and a scheduler. The DQMS is designed to check the data quality of data from an application program. The processing engine is configured to perform at least one of a plurality of jobs, wherein the at least one performed job is configured to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to one of a plurality of job sets, the plurality of job sets including at least a first job set and a second job set. Each of the job sets represents a category of run-time behavior, and the jobs contained in each job set have been classified into the run-time behavior categories according to their respective run-time behavior. The execution of the jobs contained in the first job set is triggered by a message that the data quality management system receives from the application program. The execution of the jobs contained in the second job set and in the third job set is triggered by a scheduler of the data quality management system. The monitoring module is designed to monitor the run-time behavior of at least one of the jobs being executed in order to determine a current run-time behavior of the job. The classification module is configured to automatically or semi-automatically reclassify the at least one monitored job by reassigning the job to the job set that represents the observed current runtime behavior.

Manchen Ausführungsformen entsprechend handelt es sich bei den Daten um Anwendungsdaten des Anwendungsprogramms. Die Anwendungsdaten weisen eine Vielzahl von BOs auf. Das Computersystem weist des Weiteren das Anwendungsprogramm, eine erste Datenbank und eine zweite Datenbank auf. Das Anwendungsprogramm ist mit der ersten Datenbank betriebsfähig verbunden, in der die BOs gespeichert sind. Die zweite Datenbank ist mit dem DQMS betriebsfähig verbunden und weist eine Kopie der Anwendungsdaten und der BOs in der zweiten Datenbank entsprechend einer Zuordnung auf. Die Zuordnung weist Strukturelementen der zweiten Datenbank Attribute der BOs des BO-Schemas zu. Das Datenqualitätsmanagementsystem ist so ausgelegt, dass es: auf das BO-Schema und die Zuordnung zugreift, um Attribute von BOs, die in dem BO-Schema angegeben sind, zu ermitteln, welche Strukturelementen der zweiten Datenbank zugeordnet werden; mittels des BO-Schemas und/oder der Zuordnung einen oder mehrere der Jobs als ETL-Jobs erzeugt.According to some embodiments, the data is application data of the application program. The application data has a large number of BOs. The computer system also has the application program, a first database and a second database. The application program is operatively connected to the first database in which the BOs are stored. The second database is operably connected to the DQMS and has a copy of the application data and the BOs in the second database according to a mapping. The assignment assigns attributes of the BOs of the BO schema to structure elements of the second database. The data quality management system is designed to: access the BO schema and mapping to determine attributes of BOs specified in the BO schema which structural elements map to the second database; one or more of the jobs are generated as ETL jobs using the BO scheme and/or the assignment.

Manchen Ausführungsformen entsprechend kann zusätzlich eine manuelle oder halbmanuelle Neuklassifizierung von einem Teil der Jobs unterstützt werden. Gemäß Ausführungsformen folgt die Neuklassifizierung einem in der folgenden Tabelle angegebenen Schema: An den ersten Regelsatz An den zweiten Regelsatz An den dritten Regelsatz Vom ersten Regelsatz nicht anwendbar Verarbeitungszeit >= erster Zeit-Schwellwert (automatisches oder manuelles) Setzen des Wiederholungsparameters auf einen Wert, der anzeigt, dass eine wiederholte Ausführung notwendig ist Vom zweiten Regelsatz Verarbeitungszeit < erster Zeit-Schwellwert + Von einer Transaktion ausgelöste Nachricht weist alle BO-Attribute, die von dem Job ausgewertet wurden, auf + der Job greift nicht auf eine externe Ressource zu nicht anwendbar Verarbeitungszeit < erster Zeit-Schwellwert + Von einer Transaktion ausgelöste Nachricht weist alle BO-Attribute, die von dem Job ausgewertet wurden, auf + der Job greift auf eine externe Ressource zu Vom dritten Regelsatz Wiederholungsparameter wurde (manuell oder automatisch) auf einen Wert gesetzt, der anzeigt, dass eine wiederholte Ausführung des Jobs nicht mehr notwendig ist Verarbeitungszeit >= erster Zeit-Schwellwert nicht anwendbar Additionally, according to some embodiments, manual or semi-manual reclassification of a portion of the jobs may be supported. According to embodiments, the reclassification follows a scheme given in the following table: To the first set of rules To the second set of rules To the third set of rules From the first ruleset not applicable Processing time >= first time threshold (automatically or manually) setting the retry parameter to a value indicating that retry is necessary From the second set of rules Processing time < first time threshold + Message triggered by a transaction has all BO attributes evaluated by the job + the job does not access an external resource not applicable Processing time < first time threshold + message triggered by a transaction has all BO attributes evaluated by the job + the job accesses an external resource From the third rule set Retry parameter has been set (manually or automatically) to a value that indicates that the job no longer needs to be run repeatedly Processing time >= first time threshold not applicable

Wie der Fachmann verstehen wird, können Erscheinungsformen der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das sich auf einem oder mehreren von einem Computer lesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich der von einem Computer lesbare Programmcode befindet. Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine Diskette eines tragbaren Computers, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. In Zusammenhang mit diesem Schriftstück kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit enthalten oder speichern kann. Ein von einem Computer lesbarer Signaldatenträger kann ein übertragenes Datensignal mit einem darin enthaltenen, von einem Computer lesbaren Programmcode, beispielsweise in einem Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann. Auf einem von einem Computer lesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.As will be appreciated by those skilled in the art, aspects of the present invention may be implemented as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which are generic herein may be referred to as a "circuit", a "module" or a "system". Furthermore, aspects of the present invention may take the form of a computer program product residing on one or more computer readable media having the computer readable program code resident thereon. Any combination of one or more computer-readable media can be used. The computer-readable data carrier can be a computer-readable signal data carrier or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device or any suitable combination of the above. More specific examples (and the list is not exhaustive) of the computer-readable storage medium would include: an electrical connection with one or more wires, a portable computer floppy disk, a hard disk, a random access memory (RAM), a Nur Read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage unit, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by an instruction execution system, apparatus, or unit, or for use in connection with an instruction execution system, apparatus, or unit . A computer-readable signal carrier may include a transmitted data signal having computer-readable program code embodied therein, for example in baseband or as part of a carrier wave. Such a transmitted signal may take any of a variety of forms including, but not limited to, electromagnetic, optical, or any suitable combination of these forms. A computer-readable signal medium may be any computer-readable medium, other than a computer-readable storage medium, containing a program for use by, or in connection with, an instruction execution system, apparatus or device Instruction execution system, an instruction execution device or unit can transmit, forward or transport. Program code embodied on a computer readable medium may be transmitted by any suitable medium, including but not limited to wireless medium, wired medium, fiber optic cable, radio frequency (RF), etc., or any suitable combination of the foregoing .

Figurenlistecharacter list

Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand eines Beispiels ausführlicher beschrieben, wobei nur Bezug auf die Zeichnungen genommen wird, bei denen:

  • 1 einen Ablaufplan eines Verfahrens zeigt, das eine Neuklassifizierung von Jobs aufweist,
  • 2 einen Ablaufplan eines Verfahrens zeigt, das die Erzeugung von ETL-Jobs aufweist,
  • 3 ein Anwendungsprogramm, z.B. ein ERP-System, und ein DQMS zeigt; und
  • 4 ein paar Komponenten des DQMS ausführlicher darstellt.
In the following, preferred embodiments of the invention are described in more detail by way of example, reference only being made to the drawings, in which:
  • 1 shows a flowchart of a method involving reclassification of jobs,
  • 2 shows a flowchart of a method that includes the creation of ETL jobs,
  • 3 shows an application program, eg an ERP system, and a DQMS; and
  • 4 presents a few components of the DQMS in more detail.

Ausführliche BeschreibungDetailed description

1 zeigt einen Ablaufplan eines Verfahrens, das dazu dient, die Datenqualität mittels eines Datenqualitätsmanagementsystems (DQMS), wie es beispielsweise in 2 gezeigt ist, flexibel und wirksam auszuwerten. Das DQMS stellt die Unversehrtheit und die Qualität der Daten eines Anwendungsprogramms, z.B. eines ERP-Systems, sicher, das Geschäftsobjekte wie beispielsweise „Kunde“, „Auftrag“, „Abteilung“ oder „Mitarbeiter“ aufweist. Dies geschieht durch proaktive Prüfungen der Datenqualität, die von Anfang an vermeiden, dass fehlerhafte Daten hinzugefügt werden, und/oder durch reaktive Prüfungen der Datenqualität, die fehlerhafte Daten automatisch feststellen und optional auch beseitigen, nachdem der größte Teil der Daten in der Datenbank des ERP-Systems gespeichert wurde. Zum Beispiel kann das DQMS automatisch sicherstellen, dass Kundenadressdaten, z.B. eMail-Adressen, Geburtsdaten und dergleichen, in einem Datenformat eingegeben werden, das konsistent und gültig ist. Überdies könnten Datenqualitätsprüfungen, die an mehreren BOs Operationen durchführen, sicherstellen, dass sich der semantische Gehalt von verschiedenen BOs nicht widerspricht. Zum Beispiel sollte nicht gestattet werden, dass einem bestimmten Auftrag zwei verschiedene Kunden zugeordnet sind. Wenn einer bestimmten Abteilung eines Unternehmens mehr Mitarbeiter zugewiesen wurden, als das ganze Unternehmen beschäftigt, ist dies ebenfalls ein Hinweis darauf, dass die Datenbasis des ERP-Systems inkonsistent ist. Indem proaktive und reaktive Datenqualitätsprüfungen integriert werden, die jeweils von verschiedenen Mechanismen ausgelöst werden, und indem der jeweilige Auslösemechanismus auf das überwachte Laufzeitverhalten der die Datenqualität prüfenden Jobs angepasst wird, ist das DQMS in der Lage, Datenqualitätsprüfungen an Kopien von Geschäftsobjekten äußerst wirksam und ohne Beeinträchtigung der Leistungsfähigkeit des ERP-Systems durchzuführen. Indem ETL-Jobs automatisch erzeugt werden, werden sowohl die Gesamtbetriebskosten des DQMS als auch die für die Erstellung eines solchen DQMS erforderliche Vorlaufzeit verringert. 1 shows a flowchart of a process that is used to control data quality using a data quality management system (DQMS), such as that used in 2 has been shown to flexibly and effectively evaluate. The DQMS ensures the integrity and the quality of the data of an application program, eg an ERP system, which has business objects such as "customer", "order", "department" or "employee". This is done through proactive data quality checks that avoid erroneous data being added from the start and/or reactive data quality checks that automatically identify and optionally eliminate erroneous data after most of the data is in the ERP's database system has been saved. For example, the DQMS can automatically ensure that customer address data, eg e-mail addresses, dates of birth and the like, is entered in a data format that is consistent and valid. Furthermore, data quality checks that perform operations on multiple BOs could ensure that the semantic content of different BOs does not contradict one another. For example, two different customers should not be allowed to be associated with a particular order. If more employees are assigned to a certain department of a company than the entire company employs, this is also an indication that the database of the ERP system is inconsistent. By integrating proactive and reactive data quality checks, each triggered by different mechanisms, and by adapting the respective triggering mechanism to the monitored runtime behavior of the data quality checking jobs, the DQMS is able to perform data quality checks on copies of business objects extremely effectively and without disruption the performance of the ERP system. By automatically generating ETL jobs, both the total cost of ownership of the DQMS and the lead time required to create such a DQMS are reduced.

Im Schritt 102, der in 1 gezeigt ist, führt ein DQMS mindestens einen Job einer Vielzahl von Jobs aus. Mindestens einige der Jobs sind so ausgelegt, dass sie Daten eines Anwendungsprogramms auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswerten. Die Vielzahl der Jobs kann darüber hinaus einen oder mehrere ETL-Jobs aufweisen, um eine Datenbank des DQMS, die Kopien von BOs des Anwendungsprogramms aufweist, anzulegen, erstmalig zu füllen und/oder zu aktualisieren. Im Schritt 104 überwacht ein Überwachungsmodul des DQMS das Laufzeitverhalten von dem einen oder den mehreren ausgeführten Jobs, um jeweils das aktuelle Laufzeitverhalten der Jobs festzustellen. Die Information wird im Schritt 106 von einem Klassifizierungsmodul verwendet, um den einen oder die mehreren überwachten Jobs neu zu klassifizieren, indem die Jobs einem Job-Satz neu zugeordnet werden, der das festgestellte Laufzeitverhalten des Jobs darstellt.In step 102, which is in 1 As shown, a DQMS performs at least one of a plurality of jobs. At least some of the jobs are designed to evaluate data from an application program for compliance with one or more quality criteria. The large number of jobs can also have one or more ETL jobs in order to create, initially fill and/or update a database of the DQMS that has copies of BOs of the application program. In step 104, a monitoring module of the DQMS monitors the runtime behavior of the one or more executed jobs in order to determine the current runtime behavior of the jobs in each case. The information is used by a classification module in step 106 to reclassify the one or more monitored jobs by reassigning the jobs to a job set that represents the observed run-time behavior of the job.

2 zeigt einen Ablaufplan eines Verfahrens, welches die automatische Erzeugung von ETL-Jobs aufweist. Ein Teil der ETL-Jobs kann in Abhängigkeit von dem überwachten Laufzeitverhalten der Jobs und optional auch in Abhängigkeit von bestimmten Klassifizierungsmerkmalen, die ein Benutzer den Jobs zugewiesen hat oder die automatisch zugewiesen wurden, und optional auch in Abhängigkeit von einer transaktionsbasierten Zuordnung 323 neu klassifiziert werden. Im Schritt 202 erzeugt ein Job-Factory-Modul des DQMS automatisch einen oder mehrere ETL-Jobs, um eine DQMS-Datenbank anzulegen, erstmalig zu füllen und/oder zu aktualisieren, wobei die DQMS-Datenbank, die hier auch als „zweite Datenbank“ bezeichnet wird, mit dem DQMS betriebsfähig verbunden ist und zur Speicherung von Kopien von BOs des Anwendungsprogramms verwendet wird. Die Erzeugung weist eine Auswertung eines BO-Schemas des Anwendungsprogramms sowie eine Auswertung einer Zuordnung auf. Die Zuordnung weist Strukturelementen der zweiten Datenbank BO-Typen und ihre entsprechenden Attribute zu. Die Zuordnung kann von einem Benutzer des DQMS beispielsweise über eine grafische Benutzeroberfläche geändert werden. Indem man die Zuordnung manuell anpasst, um von der zweiten Datenbank auferlegte Rahmenbedingungen oder andere Faktoren zu erfüllen, ist es folglich möglich, das DQMS und die ETL-Jobs problemlos an die Rahmenbedingungen anzupassen, ohne bereits vorhandene ETL-Jobs manuell zu ändern und ohne neue ETL-Jobs in zeitaufwendiger Manier manuell neu anlegen zu müssen. Im Schritt 204 werden der eine oder die mehreren ETL-Jobs ausgeführt, die dazu dienen, zunächst die zweite Datenbank anzulegen und zu füllen. Dadurch wird die zweite Datenbank automatisch angelegt und mit automatisch erzeugten Kopien der BOs des Anwendungsprogramms gefüllt. Im Schritt 206 kann das DQMS eine Nachricht von dem Anwendungsprogramm empfangen. Die Nachricht wird gesendet, nachdem das Anwendungsprogramm eine Datenbanktransaktion an einem BO ausgeführt hat, das erzeugt, geändert oder gelöscht werden soll. Die Nachricht weist eine Angabe des BO auf und kann darüber hinaus die Änderungen aufweisen, die an dem BO vorgenommen werden sollen, z.B. einen oder mehrere geänderte Attributwerte oder dergleichen. Der Empfang der Nachricht löst im Schritt 208 die Ausführung von die Qualität prüfenden Jobs aus, die dem in der Nachricht angegebenen BO zugewiesen und in einem ersten oder in dem dritten Job-Satz enthalten sind, wobei der erste Job-Satz von einer Transaktion ausgelöste Jobs mit kurzer Ausführungszeit aufweist, die nur einmal nach einer Transaktion ausgeführt werden. Der dritte Job-Satz weist von einer Nachricht ausgelöste Jobs mit kurzer Ausführungszeit und von einem Scheduler ausgelöste Jobs mit kurzer Ausführungszeit auf, die an Attributen von nur einem einzigen BO ausgeführt werden (d.h., Daten, die mit einer transaktionsgesteuerten Nachricht von dem Anwendungsprogramm, das eine transaktionsbasierte Änderung des BO durchführt, obligatorisch empfangen werden). Die Datenqualität prüfende Jobs, die als zu dem ersten Job-Satz gehörende Jobs ausgeführt werden, und nachrichtengesteuerte Jobs des dritten Job-Satzes werden als proaktive Prüfungen durchgeführt. Da heißt, dass die jeweiligen Qualitätsprüfungen von der Transaktion (d.h. durch den Empfang der Nachricht) ausgelöst werden und dass die Transaktion angehalten wird, bis das Anwendungsprogramm eine Antwort empfängt, die ein Auswerteergebnis von den die Datenqualität prüfenden Jobs aufweist, welche in dem ersten und/oder dem dritten Job-Satz enthalten und dem BO zugewiesen sind. 2 FIG. 12 shows a flowchart of a method that includes the automatic creation of ETL jobs. A portion of the ETL jobs can be reclassified depending on the monitored run-time behavior of the jobs and optionally also depending on certain classification characteristics that a user has assigned to the jobs or that have been assigned automatically and optionally also depending on a transaction-based mapping 323 are reclassified . In step 202, a job factory module of the DQMS automatically generates one or more ETL jobs in order to create, initially fill and/or update a DQMS database, with the DQMS database, also referred to here as the "second database" to which the DQMS is operatively connected and used to store copies of BOs of the application program. The generation includes an evaluation of a BO schema of the application program and an evaluation of an assignment. The assignment assigns BO types and their corresponding attributes to structure elements of the second database. The assignment can be changed by a user of the DQMS, for example via a graphical user interface. Consequently, by manually adjusting the mapping to meet constraints imposed by the second database or other factors, it is possible to easily adapt the DQMS and ETL jobs to the constraints conditions without having to manually change existing ETL jobs and without having to manually create new ETL jobs in a time-consuming manner. In step 204, the one or more ETL jobs are executed, which serve to initially create and fill the second database. This automatically creates the second database and fills it with automatically generated copies of the application program's BOs. In step 206, the DQMS can receive a message from the application program. The message is sent after the application program has performed a database transaction on a BO to be created, modified, or deleted. The message includes an indication of the BO and may also include the changes to be made to the BO, eg one or more changed attribute values or the like. The receipt of the message triggers, in step 208, the execution of quality checking jobs assigned to the BO specified in the message and included in a first or in the third job set, the first job set being transaction-initiated jobs with short execution time, which are executed only once after a transaction. The third job set includes short-running message-triggered jobs and short-running scheduler-triggered jobs that run on attributes of only a single BO (i.e., data associated with a transaction-driven message from the application program running performs a transaction-based change of the BO, must be received). The jobs checking data quality, which are executed as jobs belonging to the first job set, and message-driven jobs of the third job set are executed as proactive checks. This means that the respective quality checks are triggered by the transaction (i.e. by the receipt of the message) and that the transaction is suspended until the application program receives a response that has an evaluation result from the data quality checking jobs, which are carried out in the first and /or included in the third job set and assigned to the BO.

Das DQMS sendet eine Antwort auf die Nachricht an das Anwendungsprogramm, wobei die Antwort angibt, ob der eine oder die mehreren ausgeführten, die Qualität prüfenden Jobs des ersten und/oder des dritten Job-Satzes festgestellt haben, dass die transaktionsbasierte Änderung, die transaktionsbasierte Erzeugung oder die transaktionsbasierte Löschung dieser BO-Kopie (CBO) Qualitätsanforderungen nicht eingehalten hat. Da die zweite Datenbank Kopien der BOs des Anwendungsprogramms aufweist, gilt das Ergebnis der die Qualität prüfenden Jobs, das für die Kopien der BOs berechnet wurde, gleichfalls für die entsprechenden BOs des Anwendungsprogramms.The DQMS sends a response to the message to the application program, the response indicating whether the one or more executed quality checking jobs of the first and/or third job set have determined that the transaction-based change, the transaction-based creation or the transaction-based deletion of this BO copy (CBO) did not meet quality requirements. Since the second database contains copies of the application program's BOs, the result of the quality checking jobs calculated for the copies of the BO's also applies to the corresponding application program's BOs.

Falls im Schritt 208 festgestellt wird, dass die Transaktion nicht gegen die Qualitätsanforderungen, die von den die Qualität prüfenden Jobs in dem ersten und/oder dem dritten Job-Satz ausgewertet wurden, verstößt, löst der aufgerufene Verantwortliche das Anwendungsprogramm aus, um die angehaltene Transaktion festzuschreiben. Im Schritt 210 kennzeichnet das DQMS die Kopie des BO als unvollständig, falls die Nachricht nicht alle Attributwerte aufwies, welche die Kopie des BO ausmachen, und falls die zweite Datenbank die fehlenden Attributwerte ebenfalls nicht aufweist. Fehlende Attributwerte können von dem DQMS ermittelt werden, indem das BO-Schema in Verbindung mit der Zuordnung und der zweiten Datenbank ausgewertet wird, in der die entsprechenden Attributwerte in den Strukturelementen, welche in der Zuordnung angegeben sind, gespeichert sind. Im Schritt 212 löst ein Scheduler des DQMS die Ausführung von Jobs aus, die in einem zweiten Job-Satz enthalten sind, der Jobs mit langer Ausführungszeit enthält, z.B. reaktive, die Datenqualität prüfende Jobs mit langer Ausführungszeit und/oder ETL-Jobs, welche die BOs aktualisieren. Der Scheduler kann darüber hinaus die Ausführung von Jobs auslösen, die in einem dritten Job-Satz enthalten sind, der reaktive, die Datenqualität prüfende Jobs mit kurzer Ausführungszeit aufweist. Jeder der reaktiven, die Datenqualität prüfenden Jobs und/oder jeder der BO-Aktualisierungs-ETL-Jobs, kann einem oder mehreren der BOs, die in dem BO-Schema der Anwendung angegeben sind, zugewiesen werden. Falls irgendeine der BO-Kopien als unvollständig gekennzeichnet wird, ermittelt ein von dem Scheduler ausgelöster BO-Aktualisierungs-ETL-Job, der dem BO zugewiesen wird, die fehlenden Attribute und ruft die Attributwerte automatisch über eine auf Geschäftsobjektebene befindliche Schnittstelle des Anwendungsprogramms auf, vervollständigt die Kopie des BO mit den abgerufenen Attributwerten und setzt einen Wert des Vollständigkeitsparameters der Kopie auf „vollständig“. Die die Datenqualität prüfenden Jobs, die in dem zweiten Job-Satz enthalten sind, werden daran gehindert, eine als „unvollständig“ gekennzeichnete Kopie eines BO auszuwerten. Falls die jeweils zugewiesenen BO-Kopien als „vollständig“ gekennzeichnet sind, werten die reaktiven, die Datenqualität prüfenden Jobs die Kopie des BO und optional weitere Daten, z.B. die in anderen BOs oder in externen Ressourcen enthaltenen Daten, aus, um festzustellen, ob die Datenqualität des BO gegen bestimmte Qualitätsanforderungen verstößt. Das Ergebnis von zumindest den Qualitätsprüfungen, die von den die Qualität prüfenden Jobs durchgeführt werden, welche in dem zweiten Job-Satz enthalten sind, kann in Form eines Berichts gespeichert werden, der in dem DQMS abgelegt, einem Benutzer angezeigt und/oder an das Anwendungsprogramm übergeben werden kann.If, at step 208, it is determined that the transaction does not violate the quality requirements evaluated by the quality checking jobs in the first and/or the third job set, the called agent initiates the application program to complete the suspended transaction to commit. In step 210, the DQMS marks the copy of the BO as incomplete if the message did not have all the attribute values that make up the copy of the BO and if the second database also does not have the missing attribute values. Missing attribute values can be determined by the DQMS by evaluating the BO schema in connection with the mapping and the second database in which the corresponding attribute values are stored in the structure elements specified in the mapping. In step 212, a scheduler of the DQMS triggers the execution of jobs that are contained in a second job set that contains long-running jobs, e.g. reactive, long-running data quality checking jobs and/or ETL jobs that Update BOs. The scheduler can also trigger the execution of jobs contained in a third job set that includes reactive, short-running data quality checking jobs. Each of the reactive data quality checking jobs and/or each of the BO update ETL jobs may be assigned to one or more of the BOs specified in the application's BO schema. If any of the BO copies are marked as incomplete, a scheduler-triggered BO update ETL job assigned to the BO determines the missing attributes and retrieves the attribute values automatically via a business object-level interface of the application program completes the copy of the BO with the retrieved attribute values and sets a value of the completeness parameter of the copy to "complete". The data quality checking jobs contained in the second job set are prevented from evaluating a copy of a BO marked as "incomplete". If the assigned BO copies are marked as "complete", the reactive jobs checking the data quality evaluate the copy of the BO and optionally other data, e.g. the data contained in other BOs or in external resources, to determine whether the Data quality of the BO violates certain quality requirements. The result of at least the quality checks performed by the quality checking jobs included in the second job set can be stored in the form of a report that can be stored in the DQMS, displayed to a user and/or sent to the application program can be handed over.

3 zeigt ein Blockschaubild eines verteilten Computersystems 300, das ein erstes Computersystem 358 und ein zweites Computersystem 302 aufweist. Das erste Computersystem weist einen Speicher 360, einen Prozessor 262 und ein Speichermedium 364 auf. Das erste Computersystem hostet ein Anwendungsprogramm 366, das eine Vielzahl von BOs B01 bis BO4 aufweist, die entsprechend einem BO-Schema 368 der Anwendung angegeben sind. Das Anwendungsprogramm weist eine Schnittstelle 372 auf Transaktionsebene auf, um Transaktionen an einer ersten Datenbank 374 durchzuführen, die mit dem Anwendungsprogramm betriebsfähig verbunden ist. Das erste Anwendungsprogramm kann auf dem ersten Computer oder auf einem anderen Computersystem gehostet sein. Das erste Computersystem weist eine oder mehrere Datenbanktabellen 376 auf, in denen die BOs BO1 bis BO4 und ihre entsprechenden Attribute gespeichert sind. Darüber hinaus weist das Anwendungsprogramm 366 eine hier auch als „Anwendungs-API“ bezeichnete Schnittstelle 370 auf Geschäftsobjektebene auf, die von den ETL-Jobs in dem DQMS 310 zum Abruf von Daten verwendet wird, um die in der zweiten Datenbank enthaltenen BO-Kopien CBO1 bis CBO4 erstmalig zu füllen und zu aktualisieren. Der Quellcode des Anwendungsprogramms kann einige Befehle in Befehlsblöcken aufweisen, die jeweils eine Transaktion angeben, das Anhalten der Transaktion bewirken und das Senden einer Nachricht an das DQMS 310 bewirken. Die Transaktion wird nur in der ersten Datenbank festgeschrieben, wenn auf diese Nachricht MS eine Antwort R von dem DQMS empfangen wird, die angibt, dass die Datenqualität der Transaktion in Ordnung ist. Die Nachricht kann eine Angabe des BO, das in der Transaktion erzeugt, geändert oder gelöscht werden soll, und optional auch die Daten, die für die Änderung verwendet werden sollen, aufweisen. Gemäß anderen Umsetzungsvarianten kann ein Abfangmodul, das mit dem Anwendungsprogramm und der ersten Datenbank gemeinsam betrieben werden kann, jede Transaktion, die von dem Anwendungsprogramm auf der ersten Datenbank ausgeführt werden soll, abfangen und die Transaktion anhalten, bis die Antwort empfangen wird. Das zweite Computersystem 302 weist einen Speicher 304, einen Prozessor 306 und ein Speichermedium 308 auf. Das zweite Computersystem hostet ein DQMS 310, das in der Lage ist, über eine Schnittstelle 370 auf BO-Ebene BO-Daten von dem Anwendungsprogramm 366 zu empfangen und nach erfolgter Ausführung einer Transaktion durch das Anwendungsprogramm eine Nachricht MS zu empfangen und eine Antwort R über eine Schnittstelle 372 auf Transaktionsebene zurückzusenden. Das DQMS 310 weist eine Vielzahl von Modulen auf, z.B. ein Job-Factory-Modul 316, um automatisch einen oder mehrere ETL-Jobs zu erzeugen, ein Überwachungsmodul 322, um das Laufzeitverhalten einer Vielzahl von Jobs 332 zu überwachen, die von einer Verarbeitungsengine 319 ausgeführt werden. Das DQMS weist eine Zuordnung 318 auf, z.B. eine Datei oder eine Datenbanktabelle, die von einem Benutzer lesbaren Text aufweist, wobei die Zuordnung Strukturelementen (z.B. Tabellen 326, 328 und Spalten) der zweiten Datenbank 324 BOs (welche dieselbe semantische Struktur und dieselbe Definition des BO-Schemas wie die Kopien der BOs haben) und ihre Attribute zuweist. Eine transaktionsbasierte Zuordnung 323, z.B. eine Datei oder ein Datenbankeintrag, weist Transaktionen, die von der auf Transaktionsebene befindlichen Schnittstelle 372 unterstützt werden, BO-Attribute zu und gibt dabei an, ob alle Attribute, die von einem Job ausgewertet werden, der nach einer transaktionsbasierten Änderung eines BO, das die Attribute aufweist, ausgelöst wird, von dem DQMS als Teil der Nachricht MS empfangen werden. Die transaktionsbasierte Zuordnung kann auch in Verbindung mit der Zuordnung 318 verwendet werden, um nach dem Empfang einer Nachricht, die mindestens ein paar Attributwerte des BO aufweist, eine Kopie des BO zu instanziieren. Ferner weist das DQMS eine Kopie 312 des von dem Anwendungsprogramm 366 verwendeten BO-Schemas auf oder ist so ausgelegt, dass es auf das BO-Schema 312 des Anwendungsprogramms zugreift, das in dem ersten Computersystem gespeichert ist. Die BOs BO1 bis BO4 werden in der ersten Datenbank 374 gespeichert. Entsprechende Kopien CBO1 bis CBO4 der BOs BO1 bis BO4 werden in der zweiten Datenbank gespeichert, nachdem ein oder mehrere ETL-Jobs ausgeführt worden sind, um die zweite Datenbank 324 anzulegen und zu füllen. Die tabellarische Struktur der zweiten Datenbank kann identisch mit der ersten Datenbank sein, doch ist dies nicht unbedingt erforderlich. Falls die Strukturen der ersten Datenbank und der zweiten Datenbank voneinander abweichen, müssen die ETL-Jobs die Routinen, die Daten speichern, entsprechend anpassen. Eine Kombination des BO-Schemas 312 der Anwendung, der Zuordnung 318 und der in der zweiten Datenbank 324 enthaltenen Daten versorgt die Job-Factory 316 mit allen benötigten Informationen, um die ETL-Jobs automatisch zu erzeugen, und stellt der Verarbeitungsengine 319 ausreichend Informationen bereit, damit diese feststellen kann, ob eine bestimmte Kopie eines BO vollständig ist. Die Jobs 332 werden gruppenweise zu einer Vielzahl von verschiedenen Job-Sätzen zusammengefasst, die jeweils mindestens durch ein bestimmtes Laufzeitverhalten gekennzeichnet sind. Der erste Job-Satz 334 und der dritte Job-Satz 338 weisen jeweils Jobs mit kurzen Ausführungszeiten auf, z.B. die Datenqualität prüfende Jobs und/oder ETL-Jobs, welche die BOs aktualisieren. Die Ausführung von Jobs, die in dem ersten und in dem dritten Job-Satz enthalten sind, wird von einer Transaktion (d.h., indem die Nachricht empfangen wird) ausgelöst. Jobs in dem ersten Job-Satz werden nur als Reaktion auf die Transaktion ausgeführt. Die Jobs in dem zweiten und in dem dritten Job-Satz werden regelmäßig ausgeführt und von dem Scheduler 314 ausgelöst. Der zweite Job-Satz 336 weist Jobs mit langer Ausführungszeit auf, z.B. die Datenqualität prüfende Jobs und/oder BO-Aktualisierungs-ETL-Jobs. Ein vierter Job-Satz (nicht gezeigt) kann Jobs, z.B. den Job 330, aufweisen, die nur einmal ausgeführt werden sollen, um die zweite Datenbank anzulegen und/oder erstmalig zu füllen. Das Laufzeitverhalten von jedem beliebigen der Jobs 332 wird von dem Überwachungsmodul 322 überwacht. Das Klassifizierungsmodul 320 ist so ausgelegt, dass es die Jobs in Abhängigkeit von mindestens dem überwachten Laufzeitverhalten neu klassifiziert. Die die Datenqualität prüfenden Jobs, die in dem ersten Job-Satz enthalten sind, und in dem Fall, in dem sie nachrichtengesteuert sind, auch die Jobs in dem dritten Job-Satz werden proaktiv ausgeführt. Das heißt, dass die Transaktion angehalten wird, bis die Ausführung der Prüfungen beendet ist und bis eine Antwort empfangen wird, die angibt, dass die Datenqualität in Ordnung ist. Wenn die Antwort angibt, dass die Datenqualität nicht den ausgewerteten Qualitätskriterien entspricht, wird die Transaktion abgebrochen oder nur ausgeführt, nachdem ein Benutzer die Transaktion manuell überprüft hat, wodurch die Eingabe von fehlerhaften Daten oder Daten geringer Qualität in die erste Datenbank verhindert wird. Da die die Datenqualität prüfenden Jobs, die in dem ersten und in dem dritten Job-Satz enthalten sind, schnell ausgeführt werden können, wird durch das Anhalten der Transaktion bis zum Empfang einer Antwort sichergestellt, dass Daten geringer Qualität nicht gespeichert werden, ohne die Leistungsfähigkeit des Anwendungsprogramms zu mindern. Die in dem zweiten Job-Satz enthaltenen Jobs und in dem Fall, in dem sie vom Scheduler gesteuert werden, auch die Jobs in dem dritten Job-Satz werden als reaktive Datenqualitätsprüfungen ausgeführt. Das bedeutet, dass die Jobs ausgeführt werden, nachdem das Anwendungsprogramm eine Transaktion an entsprechend geänderten, in der zweiten Datenbank enthaltenen Kopien von BOs durchgeführt hat. Folglich können die reaktiv ausgeführten Jobs die Speicherung von fehlerhaften Daten nicht verhindern, aber sie können Fehler entdecken und diese anschließend melden. Da festgestellt wurde, dass die in dem zweiten Job-Satz enthaltenen Jobs sehr zeitaufwendig sind, z.B., weil sie die Daten eines BO in Verbindung mit einem oder mehreren weiteren BOs und/oder in Verbindung mit Daten auswerten, die in einer externen Ressource 354 enthalten sind. Die externe Ressource 354 kann über ein Netzwerk 356 mit dem zweiten Computersystem verbunden sein. Da die auszuwertenden Daten über ein Netzwerk übertragen werden müssen, können Datenqualitätsprüfungen, die Daten von externen Ressourcen einschließen, besonders langsam sein, und das Anhalten einer Transaktion, bis diese Art von „BO-übergreifenden“ oder „datenressourcenübergreifenden“ Prüfungen abgeschlossen sind, könnte das Anwendungsprogramm deutlich verlangsamen. Da die Datenqualitätsprüfungen als reaktive Qualitätsprüfungen an Kopien der BOs (und nicht an den Original-BOs der ersten Datenbank) an einen Zeitplan gebunden ausgeführt werden, wird die Leistungsfähigkeit des Anwendungsprogramms durch die Ausführung der Jobs in dem zweiten Job-Satz nicht negativ beeinflusst. 3 FIG. 3 shows a block diagram of a distributed computer system 300 having a first computer system 358 and a second computer system 302. FIG. The first computer system has a memory 360, a processor 262 and a storage medium 364. The first computer system hosts an application program 366 having a plurality of BOs BO1 through BO4 specified according to a BO schema 368 of the application. The application program has a transaction level interface 372 to perform transactions on a first database 374 operably connected to the application program. The first application program can be hosted on the first computer or on another computer system. The first computer system has one or more database tables 376 in which the BOs BO1 to BO4 and their corresponding attributes are stored. In addition, the application program 366 has an interface 370 at the business object level, also referred to here as an "application API", which is used by the ETL jobs in the DQMS 310 to retrieve data in order to retrieve the BO copies CBO1 contained in the second database to be filled and updated by CBO4 for the first time. The source code of the application program may have several commands in command blocks, each of which specifies a transaction, causes the transaction to be suspended, and causes a message to be sent to the DQMS 310 . The transaction is only committed in the first database if a response R is received from the DQMS to this message MS, which indicates that the data quality of the transaction is OK. The message may include an indication of the BO to be created, changed or deleted in the transaction and optionally also the data to be used for the change. According to other implementation variants, an intercepting module, cooperable with the application program and the first database, can intercept any transaction to be executed by the application program on the first database and stall the transaction until the response is received. The second computer system 302 has a memory 304, a processor 306 and a storage medium 308. FIG. The second computer system hosts a DQMS 310 capable of receiving BO data from the application program 366 via an interface 370 at BO level and receiving a message MS and a response R via the application program after a transaction has been executed by the application program a transaction level interface 372 to return. The DQMS 310 has a large number of modules, e.g. a job factory module 316 to automatically generate one or more ETL jobs, a monitoring module 322 to monitor the runtime behavior of a large number of jobs 332, which are processed by a processing engine 319 to be executed. The DQMS has a mapping 318, e.g. a file or a database table, which has text readable by a user, the mapping containing structural elements (e.g. tables 326, 328 and columns) of the second database 324 BOs (which have the same semantic structure and the same definition of the BO schemas like the copies of the BOs have) and assigns their attributes. A transaction-based map 323, such as a file or database entry, maps transactions supported by the transaction-level interface 372 to BO attributes, indicating whether all attributes evaluated by a job after a transaction-based Change of a BO having the attributes is triggered received from the DQMS as part of the message MS. Transaction-based mapping can also be used in conjunction with mapping 318 to instantiate a copy of the BO upon receipt of a message that includes at least a few attribute values of the BO. Furthermore, the DQMS has a copy 312 of the IO schema used by the application program 366 or is arranged to access the IO schema 312 of the application program stored in the first computer system. The BOs BO1 to BO4 are stored in the first database 374 . Corresponding copies CBO1 to CBO4 of BOs BO1 to BO4 are stored in the second database after one or more ETL jobs have been executed to create and populate the second database 324 . The tabular structure of the second database can be identical to the first database, but this is not essential. If the structures of the first database and the second database differ, the ETL jobs have to adjust the routines that store data accordingly. A combination of the application's BO schema 312, the mapping 318 and the data contained in the second database 324 provides the job factory 316 with all the information needed to automatically generate the ETL jobs and provides the processing engine 319 with sufficient information , so that it can determine whether a specific copy of a BO is complete. The jobs 332 are combined in groups into a large number of different job sets, each of which is characterized by at least one particular runtime behavior. The first job set 334 and the third job set 338 each include jobs with short execution times, eg data quality checking jobs and/or ETL jobs updating the BOs. Execution of jobs included in the first and third job sets is initiated by a transaction (ie by receiving the message). Jobs in the first job set are only executed in response to the transaction. The jobs in the second and third job sets are regularly executed and triggered by the scheduler 314. The second job set 336 includes long-running jobs, such as data quality checking jobs and/or BO update ETL jobs. A fourth job set (not shown) may have jobs, eg job 330, which are to be executed only once in order to create and/or fill the second database for the first time. The runtime behavior of any of the jobs 332 is monitored by the monitor module 322 . The classification module 320 is arranged to reclassify the jobs depending on at least the monitored runtime behavior. The data quality checking jobs contained in the first job set and, in the case where they are message driven, also the jobs in the third job set are executed proactively. That is, the transaction is suspended until the checks have finished running and a response is received indicating that the data quality is OK. If the response indicates that the data quality does not meet the evaluated quality criteria, the transaction is aborted or only executed after a user manually verifies the transaction, preventing the entry of erroneous or low-quality data into the first database. Because the data quality checking jobs contained in the first and third job sets can be executed quickly, pausing the transaction until a response is received ensures that low quality data is not stored without sacrificing performance of the application program. The jobs included in the second job set, and in the case where they are scheduled by the scheduler, also the jobs in the third job set, are executed as reactive data quality checks. This means that the jobs are executed after the application program has performed a transaction on appropriately modified copies of BOs contained in the second database. Consequently, the reactively executed jobs cannot prevent erroneous data from being saved, but they can detect errors and then report them. Since it was found that the jobs contained in the second job set are very time-consuming, e.g. because they evaluate the data of a BO in connection with one or more other BOs and/or in connection with data contained in an external resource 354 are. The external resource 354 can be connected to the second computer system via a network 356 . Because the data to be evaluated must travel across a network, data quality checks that involve data from external resources can be particularly slow, and pausing a transaction until these types of "cross-BO" or "cross-data-resource" checks are complete could do so Significantly slow down the application program. Since the data quality checks are scheduled as reactive quality checks on copies of the BOs (and not on the original BOs of the first database), the performance of the application program is not negatively affected by the execution of the jobs in the second job set.

4 stellt ein paar in 3 dargestellte Komponenten des DQMS 310 ausführlicher dar. Bestimmte Pfeile 1a) bis 5) werden zur Veranschaulichung von dynamischen Aspekten der Komponenten des DQMS verwendet. Das DQMS kann über eine Schnittstelle 372 auf Transaktionsebene eine Nachricht MS von einem Anwendungsprogramm empfangen. Die Nachricht kann angeben, dass das Geschäftsobjekt BO2 geändert werden soll, indem ein zweites Attribut A2 des Geschäftsobjekts auf einen bestimmten Attributwert ‚XY‘ gesetzt wird. Die Verarbeitungsengine 319 ermittelt auf der Grundlage der Zuordnung 318 und des Anwendungsschemas 312 eine entsprechende Kopie CBO2 des Geschäftsobjekts BO2. Die Verarbeitungsengine kann die Kopie CBO2 ändern, indem sie ihr Attribut A2 auf „XY“ setzt. Überdies stellt die Verarbeitungsengine möglicherweise fest, dass nicht alle Attribute dieser Kopie CBO2 bereits empfangen und in der zweiten Datenbank gespeichert worden sind. Daher kann die Verarbeitungsengine die Kopie CBO2 als unvollständig kennzeichnen, indem sie ein Vollständigkeitsmerkmal auf den Wert „unvollständig“ 402 setzt. Die Verarbeitungsengine 319 kann, wie durch den Pfeil 1a) angegeben, Jobs mit kurzer Ausführungszeit, die in dem ersten Job-Satz enthalten sind, auslösen. Die Jobs können Datenqualitätsprüfungen 340, 342 mit kurzer Ausführungszeit sein, die die Datenqualität der Daten auswerten, welche in der Nachricht und/oder in den bereits vorhandenen Attributen der Kopie CBO2 des Datenobjekts enthalten sind. Parallel zu 1a) kann die Verarbeitungsengine 319 nach dem Empfang der Nachricht die Ausführung von Jobs auslösen, die in dem dritten Job-Satz 338 enthalten sind, der Jobs mit kurzer Ausführungszeit aufweist, wie durch den Pfeil 1c) angegeben ist. Als Reaktion auf 1a) und 1c) können die Jobs 340, 342, 350 und/oder 352 an den Daten, die in der empfangenen Nachricht enthalten sind, und an den Daten, die bereits in der Kopie CBO2 enthalten sind, ausgeführt werden, wie durch die Pfeile 2a) und 2c) angegeben ist. Unabhängig davon, ob die Nachricht MS empfangen wurde, löst der Scheduler 314 regelmäßig die Ausführung aller Jobs in dem ersten und in dem dritten Job-Satz aus. Falls A2 beispielsweise das Attribut „eMail-Adresse“ darstellt und XY eine bestimmte eMail-Adresse eines Kunden ist, kann der Job 340 prüfen, ob der Attributwert XY ein Symbol ‚@‘ und eine gültige, durch ein ‚.'‘ getrennte Domäne der höchsten Ebene von einem Domänenbereich entsprechend dem Muster ‚prefix@domain.topleveldomain‘ aufweist. Der Job 350 oder der Job 352 kann für die Feststellung zuständig sein, ob die eMail-Adresse in einer schwarzen Liste von eMail-Adressen enthalten ist. Da die schwarze Liste laufend aktualisiert werden kann, kann eine regelmäßige Ausführung des Jobs zur Feststellung, ob irgendeine dem Attribut A2 zugewiesene eMail-Adresse in der schwarzen Liste enthalten ist, sicherstellen, dass keine eMail-Adresse, die in der schwarzen Liste enthalten ist, in der zweiten Datenbank gespeichert ist oder darin verwaltet wird und folglich auch nicht in der ersten Datenbank des Anwendungsprogramms. Die Ausführung der Jobs, die in dem zweiten Job-Satz 336 enthalten sind, wird nicht durch den Empfang der Nachricht, sonder vielmehr vom Scheduler 314 ausgelöst. Falls der Scheduler die Ausführung der Jobs in dem zweiten Job-Satz einleiten sollte, führen die zweiten Jobs ihre jeweiligen Datenqualitätsprüfungen nicht an der Kopie CBO2 durch, da diese als unvollständig gekennzeichnet worden ist (siehe 2b): KEINE Prüfung!). Der Scheduler kann jedoch die Ausführung eines ETL-Aktualisierungs-Jobs 348 einleiten, der ausgeführt werden kann, um die fehlenden Attributwerte über die Schnittstelle 370 auf BO-Ebene von dem Anwendungsprogramm abzurufen und um die Kopie CBO2 zu vervollständigen. In Abhängigkeit von der jeweiligen Ausführungsart und dem jeweiligen Laufzeitverhalten der einzelnen ETL-Aktualisierungsjobs kann ein ETL-Aktualisierungsjob zum Abruf von fehlenden Attributwerten in einem beliebigen der Job-Sätze, also in dem ersten Job-Satz, in dem zweiten Job-Satz oder in dem dritten Job-Satz, enthalten sein. Somit kann der Abruf der fehlenden Attributwerte und/oder der Abruf von BOs, die neu zu der ersten Datenbank hinzugefügt worden sind, von ETL-Jobs 341, die in dem ersten Job-Satz enthalten sind, oder von dem ETL-Job 348, der in dem zweiten Job-Satz enthalten ist, ausgeführt werden. Die ETL-Aktualisierungs-Jobs 341 oder 348 rufen alle fehlenden Daten der Kopie CBO2 über eine Schnittstelle 370 auf BO-Ebene ab, wie durch den Pfeil 3) angegeben ist. Nachdem die fehlenden Daten abgerufen worden sind, wird die Kopie CBO2 mit den zusätzlichen Daten aktualisiert, wodurch die vollständige Kopie CBO2' erzeugt wird. Der Vollständigkeitsparameter der Kopie CBO2' wird auf den Wert „vollständig“ 404 gesetzt. Das nächste Mal, wenn die Ausführung eines die Datenqualität prüfenden Jobs, der in dem zweiten Job-Satz enthalten ist und BO2 (und folglich dementsprechend CBO2') zugewiesen wird, von dem Scheduler ausgelöst wird, wird der Job 344, 346, wie durch den Pfeil 4) angegeben ist, auch an CBO2' ausgeführt, da der Vollständigkeitsparameter von CBO2' Vollständigkeit angibt. Schließlich wird ein Bericht erzeugt, wie durch den Pfeil 5) angegeben ist. Der Bericht weist mindestens die Ergebnisse der die Datenqualität prüfenden Jobs, die in dem zweiten Job-Satz enthalten sind, optional aber auch die Ergebnisse der die Datenqualität prüfenden Jobs, die in dem ersten und/oder dem dritten Job-Satz enthalten sind, auf. Der Bericht kann z.B. über eine grafische Benutzeroberfläche an einen Benutzer ausgegeben, an das Anwendungsprogramm zurückgesendet und/oder im Speichermedium 308 gespeichert werden. 4 put a few in 3 Illustrated components of the DQMS 310 in more detail. Certain arrows 1a) to 5) are used to illustrate dynamic aspects of the components of the DQMS. The DQMS can receive a message MS from an application program via an interface 372 on the transaction level. The message may indicate that the business object BO2 is to be changed by setting a second attribute A2 of the business object to a specific attribute value 'XY'. Based on the mapping 318 and the application schema 312, the processing engine 319 determines a corresponding copy CBO2 of the business object BO2. The processing engine can change the copy CBO2 by setting its attribute A2 to "XY". Furthermore, the processing engine may find that not all attributes of this copy CBO2 have already been received and stored in the second database. Therefore, the processing engine can mark copy CBO2 as incomplete by setting a completeness flag to the value "incomplete" 402 . As indicated by arrow 1a), the processing engine 319 may trigger short-running jobs contained in the first job set. The jobs can be short-running data quality checks 340, 342 that evaluate the data quality of the data contained in the message and/or in the pre-existing attributes of the copy CBO2 of the data object. In parallel with 1a), the processing engine 319, upon receipt of the message, can trigger the execution of jobs included in the third job set 338, which includes jobs with short execution times, as indicated by arrow 1c). In response to 1a) and 1c), the jobs 340, 342, 350 and/or 352 can be performed on the data contained in the received message and on the data already contained in the copy CBO2, as indicated by arrows 2a) and 2c). Regardless of whether the MS message has been received, the scheduler 314 regularly triggers the execution of all jobs in the first and in the third job set. For example, if A2 represents the attribute "email address" and XY is a specific customer email address, job 340 can check whether the attribute value XY contains a symbol '@' and a valid domain separated by a '.' top level of a domain range according to the pattern 'prefix@domain.topleveldomain'. Job 350 or job 352 may be responsible for determining whether the e-mail address is included in a black list of e-mail addresses. Since the blacklist can be continuously updated, regular execution of the job to determine whether any email address assigned to attribute A2 is blacklisted can ensure that no blacklisted email address in the second database is stored or managed therein and consequently not in the first database of the application program either. The execution of the jobs contained in the second job set 336 is not triggered by the receipt of the message but rather by the scheduler 314 . If the scheduler should initiate the execution of the jobs in the second set of jobs, the second jobs will not perform their respective data quality checks on the copy CBO2 since it has been marked as incomplete (see 2b: NO check!). However, the scheduler can initiate the execution of an ETL update job 348, which can be executed to retrieve the missing attribute values from the application program via the BO-level interface 370 and to complete the copy CBO2. Depending on the particular execution type and the particular run-time behavior of each ETL update job, an ETL update job can be used to retrieve missing attribute values in any of the job sets, i.e. the first job set, the second job set or the third job set to be included. Thus, retrieval of the missing attribute values and/or retrieval of BOs newly added to the first database may be from ETL jobs 341 contained in the first job set or from ETL job 348 that contained in the second job set are executed. The ETL update jobs 341 or 348 retrieve any missing data of copy CBO2 via a BO level interface 370 as indicated by arrow 3). After the missing data is retrieved, the copy CBO2 is updated with the additional data, creating the full copy CBO2'. The completeness parameter of the copy CBO2' is set to the value "complete" 404 . The next time execution of a data quality checking job included in the second job set and assigned to BO2 (and hence correspondingly CBO2') is triggered by the scheduler, the job 344, 346 will be executed as indicated by the Arrow 4) is also performed on CBO2' since the completeness parameter of CBO2' indicates completeness. Finally a report is generated as indicated by arrow 5). The report includes at least the results of the data quality checking jobs included in the second job set, but optionally also the results of the data quality checking jobs included in the first and/or the third job set. The report can be output to a user via a graphical user interface, sent back to the application program and/or stored in the storage medium 308, for example.

Claims (15)

Von einem Computer ausgeführtes Verfahren, um die Datenqualität von Daten eines Anwendungsprogramms (366) durch ein Datenqualitätsmanagementsystem (310) zu prüfen, wobei das Verfahren aufweist: - Ausführen (102) von mindestens einem Job einer Vielzahl von Jobs (332) durch das Datenqualitätsmanagementsystem, wobei der mindestens eine Job so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet, • wobei jeder der Jobs zu einem Job-Satz einer Vielzahl von Job-Sätzen (334, 336, 338) gehört, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz (334) und einen zweiten Job-Satz (336) aufweist; • wobei jeder Job-Satz der Job-Sätze eine Kategorie eines Laufzeitverhaltens darstellt, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden; • wobei die Ausführung der in dem ersten Job-Satz enthaltenen Jobs von einer Nachricht (MS) ausgelöst wird, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt; • wobei die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs von einem Scheduler (314) des Datenqualitätsmanagementsystems ausgelöst wird; - Überwachen des Laufzeitverhaltens von dem mindestens einen ausgeführten Job durch das Datenqualitätsmanagementsystem, um ein aktuelles Laufzeitverhalten des Jobs festzustellen; - Neuklassifizieren des mindestens einen überwachten Jobs, indem der Job demjenigen Job-Satz neu zugeordnet wird, der das festgestellte aktuelle Laufzeitverhalten darstellt.A method executed by a computer to check the data quality of data of an application program (366) by a data quality management system (310), the method comprising: - Execution (102) of at least one job of a plurality of jobs (332) by the data quality management system, wherein the at least one job is designed to evaluate the data for compliance with one or more quality criteria, • each of the jobs belonging to a job set of a plurality of job sets (334, 336, 338), the plurality of job sets including at least a first job set (334) and a second job set (336) having; • wherein each job set of the job sets represents a category of run-time behavior, the jobs contained in each job set having been classified into the run-time behavior categories according to their respective run-time behavior; • wherein the execution of the jobs contained in the first job set is triggered by a message (MS) that the data quality management system receives from the application program; • wherein the execution of the jobs contained in the second job set is triggered by a scheduler (314) of the data quality management system; - monitoring of the runtime behavior of the at least one executed job by the data quality management system in order to determine a current runtime behavior of the job; - Reclassifying the at least one monitored job by reassigning the job to the job set that represents the current run-time behavior detected. Von einem Computer ausgeführtes Verfahren nach Anspruch 1, wobei die Nachricht durch das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfangen wird, nachdem das Anwendungsprogramm eine Datenbanktransaktion zur Speicherung der Daten in einer ersten Datenbank (374) ausgeführt hat, wobei die erste Datenbank mit dem Anwendungsprogramm betriebsfähig verbunden ist, wobei die Nachricht mindestens einen Teil der Daten aufweist, deren Qualität ausgewertet werden soll; wobei die Transaktion angehalten wird, bis das Anwendungsprogramm eine Antwort (R) von dem Datenqualitätsmanagementsystem empfängt, wobei die Antwort angibt, dass die Daten die Qualitätskriterien erfüllen, welche von einem oder mehreren der Jobs ausgewertet wurden.Procedure performed by a computer claim 1 , wherein the message is received by the data quality management system from the application program after the application program has performed a database transaction for storing the data in a first database (374), the first database being operably connected to the application program, the message at least a portion of the has data whose quality is to be evaluated; wherein the transaction is suspended until the application program receives a response (R) from the data quality management system, the response indicating that the data meets the quality criteria evaluated by one or more of the jobs. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 2, - wobei die Job-Sätze des Weiteren einen dritten Job-Satz (338) aufweisen, wobei die Ausführung von Jobs, die in dem dritten Job-Satz enthalten sind, regelmäßig von dem Scheduler und überdies nach dem Empfang einer Nachricht ausgelöst wird, die von dem Anwendungsprogramm nach einer transaktionsbasierten Änderung von einem der Geschäftsobjekte, die dem Job zugewiesen sind, gesendet wird, - wobei die Ausführung der Jobs des zweiten Job-Satzes einzig und allein von dem Scheduler regelmäßig ausgelöst wird; - wobei jeder beliebige der Jobs, deren Ausführungszeit einen ersten Zeit-Schwellwert unterschreitet oder gleich einem ersten Zeit-Schwellwert ist, als ein Job klassifiziert wird, der zu dem ersten Job-Satz oder zu dem dritten Job-Satz gehört; - wobei jeder beliebige der Jobs, deren Ausführungszeit den ersten Zeit-Schwellwert überschreitet, als ein Job klassifiziert wird, der zu dem zweiten Job-Satz gehört.A computer-executed method according to any one of Claims 1 until 2 , - the job sets further comprising a third job set (338), the execution of jobs included in the third job set being periodically triggered by the scheduler and further upon receipt of a message that is sent by the application program after a transaction-based change of one of the business objects assigned to the job, - the execution of the jobs of the second job set being periodically triggered solely by the scheduler; - wherein any one of the jobs whose execution time is less than or equal to a first time threshold is classified as a job belonging to the first job set or to the third job set; - wherein any of the jobs whose execution time exceeds the first time threshold is classified as a job belonging to the second job set. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 3, wobei allen Jobs, die in demselben Job-Satz der Job-Sätze enthalten sind, ein oder mehrere Klassifizierungsmerkmale gemein sind, wobei die Neuklassifizierung von dem mindestens einen Job das Ermitteln eines Werts für eines oder mehrere der Klassifizierungsmerkmale und das Neuklassifizieren des Jobs entsprechend den ermittelten Werten der Klassifizierungsmerkmale aufweist, wobei das eine oder die mehreren Klassifizierungsmerkmale in einer beliebigen Kombination aus einer Gruppe ausgewählt werden, die aufweist: • einen Wiederholungsparameter, der angibt, ob der Job, dem ein entsprechender Parameterwert zugewiesen wurde, regelmäßig ausgeführt wird; • eine Gesamtausführungszeit des Jobs; • eine Fähigkeit des Jobs, auf eine oder mehrere externe Ressourcen zuzugreifen, um die Qualität der Daten auszuwerten.A computer-executed method according to any one of Claims 1 until 3 , wherein all jobs contained in the same one of the job sets have one or more classification features in common, wherein the reclassification of the at least one job comprises determining a value for one or more of the classification features and reclassifying the job according to the determined values of the classifiers, the one or more classifiers being selected in any combination from a group comprising: • a recurrence parameter indicating whether the job assigned a corresponding parameter value is run regularly; • a total execution time of the job; • A job's ability to access one or more external resources to evaluate the quality of the data. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 4, wobei mindestens ein weiterer Job der Vielzahl der Jobs so ausgelegt ist, dass er Qualitätskriterien an einer Kopie (CBO2) von einem der Geschäftsobjekte (BO2) in Verbindung mit weiteren Daten auswertet, wobei es sich bei den weiteren Daten um eine Kopie von mindestens einem weiteren Geschäftsobjekt und/oder um Daten handelt, die von einer externen Ressource (354) abgeleitet werden, wobei das Verfahren aufweist. - Feststellen, dass der weitere Job Qualitätskriterien an einer Kopie (CBO2) von einem der Geschäftsobjekte (BO2) in Verbindung mit weiteren Daten auswertet; - infolge der Feststellung Klassifizieren des Jobs als einen Job, der zu dem zweiten Job-Satz gehört.A computer-executed method according to any one of Claims 1 until 4 , wherein at least one other job of the plurality of jobs is designed in such a way that it evaluates quality criteria on a copy (CBO2) of one of the business objects (BO2) in connection with further data, the further data being a copy of at least one another business object and/or data derived from an external resource (354), the method comprising. - Establishing that the further job evaluates quality criteria on a copy (CBO2) of one of the business objects (BO2) in connection with further data; - as a result of the determination, classifying the job as a job belonging to the second job set. Von einem Computer ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei den Daten, deren Qualität geprüft werden soll, um Anwendungsdaten handelt, die ein oder mehrere Geschäftsobjekte (BO1 bis BO4) aufweisen, welche von einem Geschäftsobjektschema (312) des Anwendungsprogramms angegeben werden; wobei das Anwendungsprogramm mit einer ersten Datenbank (374) betriebsfähig verbunden ist, in der die Geschäftsobjekte (BO1 bis BO4) gespeichert sind; wobei das Datenqualitätsmanagementsystem mit einer zweiten Datenbank (324) betriebsfähig verbunden ist, wobei die zweite Datenbank eine Kopie der Anwendungsdaten und entsprechende Kopien (CBO1 bis CBO4) der Geschäftsobjekte (BO1 bis BO4) entsprechend einer Zuordnung (318) aufweist, wobei die Zuordnung Strukturelementen (326, 328) der zweiten Datenbank Attribute der Geschäftsobjekte des Geschäftsobjektschemas (312) zuweist; wobei das Verfahren des Weiteren aufweist: - Zugreifen auf das Geschäftsobjektschema (312) und die Zuordnung (318) durch das Datenqualitätsmanagementsystem, um Attribute (A1, A2, ..., An) von Geschäftsobjekten zu ermitteln, die in dem Geschäftsobjektschema angegeben sind, wobei die Attribute den Strukturelementen der zweiten Datenbank zugeordnet werden; - Erzeugen von einem oder mehreren der Jobs (341, 348, 330) als ETL-Jobs durch das Datenqualitätsmanagementsystem unter Verwendung des Geschäftsobjektschemas und/oder der Zuordnung.A computer-executed method according to any one of the preceding claims, wherein the data whose quality is to be checked is application data comprising one or more business objects (BO1 to BO4) specified by a business object schema (312) of the application program; the application program being operably connected to a first database (374) in which the business objects (BO1 to BO4) are stored; wherein the data quality management system is operably connected to a second database (324), the second database having a copy of the application data and corresponding copies (CBO1 to CBO4) of the business objects (BO1 to BO4) according to a mapping (318), the mapping being structural elements ( 326, 328) assigning attributes of the business objects of the business object schema (312) to the second database; the method further comprising: - Accessing the business object schema (312) and mapping (318) through the data quality management system to determine attributes (A1, A2, ..., An) of business objects specified in the business object schema, the attributes corresponding to the structure elements of the second be assigned to the database; - creation of one or more of the jobs (341, 348, 330) as ETL jobs by the data quality management system using the business object schema and/or the mapping. Von einem Computer ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, wobei die Vielzahl der Jobs einen oder mehrere ETL-Jobs (341, 348, 330) aufweist, wobei die ETL-Jobs erste ETL-Jobs und/oder zweite ETL-Jobs und/oder dritte ETL-Jobs aufweisen, wobei das Verfahren des Weiteren aufweist: - Ausführen der ersten ETL-Jobs (330), um zunächst die zweite Datenbank (324) anzulegen; und/oder - Ausführen der zweiten ETL-Jobs, um die zweite Datenbank mit Kopien der Geschäftsobjekte der ersten Datenbank zu füllen; und/oder - regelmäßiges Ausführen der dritten ETL-Jobs (348), um eine oder mehrere Kopien (CB01 bis CBO4) der Geschäftsobjekte zu aktualisieren.A computer-implemented method as claimed in any preceding claim, wherein the plurality of jobs comprises one or more ETL jobs (341, 348, 330), the ETL jobs being first ETL jobs and/or second ETL jobs and/or have third ETL jobs, the method further comprising: - executing the first ETL jobs (330) to first create the second database (324); and/or - executing the second ETL jobs to populate the second database with copies of the business objects of the first database; and or - periodically executing the third ETL jobs (348) to update one or more copies (CB01 to CBO4) of the business objects. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 7, wobei das Verfahren aufweist: - Empfangen der Nachricht (MS) von dem Anwendungsprogramm, wobei die Nachricht ein Geschäftsobjekt (BO2) der in der ersten Datenbank gespeicherten Geschäftsobjekte (BO1 bis BO4) sowie Änderungen angibt, die an dem Geschäftsobjekt vorgenommen werden sollen; - Ändern einer Kopie (CBO2) des angegebenen Geschäftsobjekts (BO2), wobei die Kopie unter Verwendung der angegebenen Änderungen als Eingabe in der zweiten Datenbank (324) gespeichert wird; - wenn die geänderte Kopie des Geschäftsobjekts nicht alle Daten des Geschäftsobjekts aufweist, Setzen eines der geänderten Kopie zugewiesenen Vollständigkeitsparameters auf einen Wert (402), der anzeigt, dass die Kopie ein oder mehrere fehlende Attribute aufweist, die das Datenqualitätsmanagementsystem noch nicht von dem Anwendungsprogramm empfangen hat.A computer-executed method according to any one of Claims 1 until 7 , the method comprising: - receiving the message (MS) from the application program, the message specifying a business object (BO2) of the business objects (BO1 to BO4) stored in the first database and changes to be made to the business object; - modifying a copy (CBO2) of the specified business object (BO2), the copy being stored in the second database (324) using the specified modifications as input; - if the changed copy of the business object does not have all the data of the business object, setting a completeness parameter assigned to the changed copy to a value (402) indicating that the copy has one or more missing attributes that the data quality management system has not yet received from the application program Has. Von einem Computer ausgeführtes Verfahren nach Anspruch 8, wobei das Ändern der Kopie des Geschäftsobjekts in der zweiten Datenbank das Setzen eines der Kopie zugewiesenen Vollständigkeitsparameters auf einen Wert (402) aufweist, der Unvollständigkeit anzeigt, wodurch verhindert wird, dass beliebige der Qualitätskriterien an der Kopie (CBO2) von die Datenqualität prüfenden Jobs, die in dem zweiten Job-Satz (336) enthalten sind, ausgewertet werden, wobei die Datenqualität prüfende Jobs, die in dem ersten Job-Satz (334) und/oder in dem dritten Job-Satz (338) enthalten sind, in der Lage sind, ungeachtet des Werts des Vollständigkeitsparameters ihre jeweiligen Qualitätskriterien an der Kopie des Geschäftsobjekts auszuwerten.Procedure performed by a computer claim 8 , wherein changing the copy of the business object in the second database comprises setting a completeness parameter assigned to the copy to a value (402) indicating incompleteness, thereby preventing any of the quality criteria on the copy (CBO2) of data quality checking jobs , which are contained in the second job set (336), are evaluated, the data quality checking jobs contained in the first job set (334) and/or in the third job set (338) being contained in the Are able to evaluate their respective quality criteria on the copy of the business object, regardless of the value of the completeness parameter. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 7 bis 9, wobei das regelmäßige Ausführen der dritten ETL-Jobs (348) aufweist: • Auswerten einer jeden Kopie eines entsprechenden der Geschäftsobjekte, wobei die Kopien in der zweiten Datenbank gespeichert werden, um festzustellen, ob der Kopie ein Wert (402) eines Vollständigkeitsparameters zugewiesen wurde, der anzeigt, dass ein oder mehrere Attribute des Geschäftsobjekts, von dem die Kopie abgeleitet ist, fehlende Attribute sind, die das Datenqualitätsmanagementsystem noch nicht von dem Anwendungsprogramm empfangen hat; • Abrufen des einen oder der fehlenden Attribute von dem Anwendungsprogramm; • Aktualisieren der Kopie des Geschäftsobjekts, dabei Vervollständigen der Kopie mit den abgerufenen fehlenden Attributen, und Ändern des Werts (404) des Vollständigkeitsparameters der Kopie, um die Vollständigkeit der Kopie anzuzeigen.A computer-executed method according to any one of Claims 7 until 9 wherein periodically executing the third ETL jobs (348) comprises: • evaluating each copy of a corresponding one of the business objects, the copies being stored in the second database, to determine whether the copy has been assigned a value (402) of a completeness parameter indicating that one or more attributes of the business object from which the copy is derived are missing attributes that the data quality management system has not yet received from the application program; • retrieving the one or more missing attributes from the application program; • Updating the copy of the business object, thereby completing the copy with the retrieved missing attributes, and changing the value (404) of the copy's completeness parameter to indicate the completeness of the copy. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 10, wobei jedem der Jobs eine Definition eines Geschäftsobjektschemas von entsprechenden der Geschäftsobjekte zugewiesen wurde, wobei das Verfahren aufweist: - Ändern einer Kopie (CB02) eines in der Nachricht angegebenen Geschäftsobjekts (B02) entsprechend Daten, die in der Nachricht enthalten sind; - Kennzeichnen von einem oder mehreren Jobs, die in dem ersten oder in dem dritten Job-Satz enthalten sind und der Schema-Definition des Geschäftsobjekts zugeordnet werden, das in der Nachricht angegeben ist; - Ausführen des einen oder der mehreren gekennzeichneten Jobs an der geänderten Kopie des Geschäftsobjekts, um zu bewerten, ob die von den Jobs ausgewerteten Qualitätskriterien von der aktualisierten Kopie erfüllt werden; - Senden einer Antwort (R) an das Anwendungsprogramm, wobei die Antwort angibt, ob die geänderte Kopie (CBO2) des ersten Datenobjekts die ausgewerteten Qualitätskriterien erfüllt.A computer-executed method according to any one of Claims 1 until 10 wherein each of the jobs has been assigned a definition of a business object schema of respective ones of the business objects, the method comprising: - modifying a copy (CB02) of a business object (B02) specified in the message according to data contained in the message; - identifying one or more jobs contained in the first or in the third job set and associated with the schema definition of the business object specified in the message; - executing the one or more identified jobs on the modified copy of the business object to assess whether the quality criteria evaluated by the jobs are met by the updated copy; - Sending a response (R) to the application program, the response indicating whether the modified copy (CBO2) of the first data object meets the evaluated quality criteria. Von einem Computer ausgeführtes Verfahren nach einem der Ansprüche 1 bis 11, wobei die Nachricht über eine erste Legacy-Schnittstelle (372) des Anwendungsprogramms empfangen wird, wobei die erste Legacy-Schnittstelle für Datenqualitätsprüfungen entwickelt oder verwendet wurde, die an Transaktionsdaten durchgeführt werden sollen, wobei es sich bei einer Transaktion um eine Änderung oder eine Speicherung von einem der Geschäftsobjekte in der ersten Datenbank (374) handelt, wobei die Nachricht Transaktionsdaten eines Geschäftsobjekts aufweist; und des Weiteren aufweisend: - Verwenden einer zweiten Legacy-Schnittstelle (370) des Anwendungsprogramms, um in der ersten Datenbank gespeicherte Daten abzurufen, um die zweite Datenbank (324) erstmalig über einen oder mehrere der Jobs, bei denen es sich um ETL-Jobs handelt, zu füllen und/oder um sie zu aktualisieren, wobei die ETL-Jobs auf einer Geschäftsobjektebene Operationen durchführen.A computer-executed method according to any one of Claims 1 until 11 , wherein the message is received via a first legacy interface (372) of the application program, the first legacy interface being developed or used for data quality checks to be performed on transaction data, a transaction being a modification or a storage is about one of the business objects in the first database (374), the message comprising transaction data of a business object; and further comprising: - using a second legacy interface (370) of the application program to retrieve data stored in the first database to access the second database (324) for the first time via one or more of Populate and/or update jobs that are ETL jobs, which ETL jobs perform operations at a business object level. Von einem Computer lesbarer Datenträger (308), der einen damit realisierten, von einem Computer lesbaren Programmcode aufweist, der, wenn er von einem Prozessor (306) ausgeführt wird, den Prozessor veranlasst, ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.A computer-readable data carrier (308) having computer-readable program code implemented thereon which, when executed by a processor (306), causes the processor to perform a method according to any one of the preceding claims. Computersystem (300), das aufweist: - ein Datenqualitätsmanagementsystem (310), das eine Verarbeitungsengine (319), ein Überwachungsmodul (322), ein Klassifizierungsmodul (320) und einen Scheduler (314) aufweist, wobei das Qualitätsmanagementsystem so ausgelegt ist, dass es die Datenqualität von Daten eines Anwendungsprogramms (366) prüft; - wobei die Verarbeitungsengine so ausgelegt ist, dass sie mindestens einen Job einer Vielzahl von Jobs (332) ausführt, wobei der mindestens eine ausgeführte Job so ausgelegt ist, dass er die Daten (CBO2) auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet, • wobei jeder der Jobs zu einem Job-Satz einer Vielzahl von Job-Sätzen (334, 336, 338) gehört, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz (334) und einen zweiten Job-Satz (336) aufweist; • wobei jeder Job-Satz der Job-Sätze eine Kategorie eines Laufzeitverhaltens darstellt, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden; • wobei die Ausführung der in dem ersten Job-Satz enthaltenen Jobs von einer Nachricht (MS) ausgelöst wird, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt; • wobei die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs von dem Scheduler ausgelöst wird; - wobei das Überwachungsmodul so ausgelegt ist, dass es das Laufzeitverhalten von mindestens einem der ausgeführten Jobs überwacht, um ein aktuelles Laufzeitverhalten des Jobs festzustellen; - wobei das Klassifizierungsmodul so ausgelegt ist, dass der mindestens eine überwachte Job neu klassifiziert wird, indem der Job dem Job-Satz neu zugeordnet wird, welcher das festgestellte aktuelle Laufzeitverhalten darstellt.Computer system (300) comprising: - a data quality management system (310) having a processing engine (319), a monitoring module (322), a classification module (320) and a scheduler (314), the quality management system being designed to monitor the data quality of data of an application program (366 ) checks; - wherein the processing engine is designed to execute at least one of a plurality of jobs (332), wherein the at least one job executed is designed to evaluate the data (CBO2) for compliance with one or more quality criteria, • each of the jobs belonging to a job set of a plurality of job sets (334, 336, 338), the plurality of job sets including at least a first job set (334) and a second job set (336) having; • wherein each job set of the job sets represents a category of run-time behavior, the jobs contained in each job set having been classified into the run-time behavior categories according to their respective run-time behavior; • wherein the execution of the jobs contained in the first job set is triggered by a message (MS) that the data quality management system receives from the application program; • the execution of the jobs contained in the second job set being triggered by the scheduler; - wherein the monitoring module is designed such that it monitors the runtime behavior of at least one of the executed jobs in order to determine a current runtime behavior of the job; - wherein the classification module is arranged to reclassify the at least one monitored job by reassigning the job to the job set that represents the determined current runtime behavior. Computersystem nach Anspruch 14, wobei es sich bei den Daten um Anwendungsdaten des Anwendungsprogramms handelt, wobei die Anwendungsdaten eine Vielzahl von Geschäftsobjekten (BO1 bis BO4) aufweisen, wobei das Computersystem des Weiteren aufweist: - das Anwendungsprogramm; - eine erste Datenbank (374), wobei das Anwendungsprogramm mit der ersten Datenbank (374) betriebsfähig verbunden ist, in der die Geschäftsobjekte gespeichert sind; - eine zweite Datenbank (324), die mit dem Datenqualitätsmanagementsystem betriebsfähig verbunden ist, wobei die zweite Datenbank eine Kopie der Anwendungsdaten und Kopien (CBO1 bis CBO4) der entsprechenden Geschäftsobjekte in der zweiten Datenbank entsprechend einer Zuordnung (318) aufweist, wobei die Zuordnung Strukturelementen der zweiten Datenbank Attribute der Geschäftsobjekte des Geschäftsobjektschemas zuweist; wobei das Datenqualitätsmanagementsystem so ausgelegt ist, dass es: - auf das Geschäftsobjektschema (312) und die Zuordnung zugreift, um Attribute von Geschäftsobjekten, die in dem Geschäftsobjektschema angegeben sind, zu ermitteln, welche Strukturelementen (326, 328) der zweiten Datenbank zugeordnet werden; - einen oder mehrere der Jobs als ETL-Jobs erzeugt, indem es das Geschäftsobjektschema und/oder die Zuordnung verwendet.computer system after Claim 14 , the data being application data of the application program, the application data having a multiplicity of business objects (BO1 to BO4), the computer system further having: - the application program; - a first database (374), the application program being operatively connected to the first database (374) in which the business objects are stored; - a second database (324) operably connected to the data quality management system, the second database having a copy of the application data and copies (CBO1 to CBO4) of the corresponding business objects in the second database according to a mapping (318), the mapping being structural elements assigning attributes of the business objects of the business object schema to the second database; wherein the data quality management system is arranged to: - access the business object schema (312) and the mapping to determine attributes of business objects specified in the business object schema which structural elements (326, 328) are mapped to the second database; - Generates one or more of the jobs as ETL jobs using the business object schema and/or mapping.
DE102013215529.8A 2013-08-07 2013-08-07 Remapping jobs to check data quality Active DE102013215529B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013215529.8A DE102013215529B4 (en) 2013-08-07 2013-08-07 Remapping jobs to check data quality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013215529.8A DE102013215529B4 (en) 2013-08-07 2013-08-07 Remapping jobs to check data quality

Publications (2)

Publication Number Publication Date
DE102013215529A1 DE102013215529A1 (en) 2015-02-12
DE102013215529B4 true DE102013215529B4 (en) 2022-09-29

Family

ID=52388767

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013215529.8A Active DE102013215529B4 (en) 2013-08-07 2013-08-07 Remapping jobs to check data quality

Country Status (1)

Country Link
DE (1) DE102013215529B4 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130081025A1 (en) 2011-09-28 2013-03-28 International Business Machines Corporation Adaptively Determining Response Time Distribution of Transactional Workloads
US20130185729A1 (en) 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130081025A1 (en) 2011-09-28 2013-03-28 International Business Machines Corporation Adaptively Determining Response Time Distribution of Transactional Workloads
US20130185729A1 (en) 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures

Also Published As

Publication number Publication date
DE102013215529A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
DE69736748T2 (en) EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION
US9922106B2 (en) Reallocating jobs for checking data quality
DE102012208141B4 (en) Compensation for decreasing functionality
DE112012005037B4 (en) Manage redundant immutable files using deduplications in storage clouds
DE112010004652B4 (en) Reliable high-throughput replication of transformed data in data systems
DE202013012496U1 (en) Systems for asynchronous schema changes
DE112020004623T5 (en) ML-BASED EVENT HANDLING
DE112011101793T5 (en) Shared data usage with file clones
DE202011110124U1 (en) Hybrid query execution plan
DE112017006106T5 (en) Create, access, and view lineage metadata
DE102014215621A1 (en) Template system for generating customized documents
DE202009019149U1 (en) Asynchronous distributed garbage collection for replicated storage clusters
DE102014116369A1 (en) MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
DE112011100618T5 (en) Manage write operations to a range of tracks that is moved between storage devices
DE102013200355A1 (en) Merging of documents based on the knowledge of a document schema
DE112011101559T5 (en) Dynamic adaptive detection of processes and their compliance
DE102012223167B4 (en) Sharing artifacts between collaborative systems
DE112019001480T5 (en) Automatically optimizing resource usage in a target database management system to increase workload performance
DE102021125630A1 (en) DATA SYNCHRONIZATION IN A DATA ANALYSIS SYSTEM
DE102013200508A1 (en) Replacement order of cache sets based on time-based set recording
DE112010004003T5 (en) A method of training and using a classification model with association rules models
DE112018000456T5 (en) Manage large allocation groups using optimized bitmap representations
DE112015002101T5 (en) Systems and methods for improved data structure storage
DE112018001290T5 (en) Method for estimating the erasability of data objects
DE102021130957A1 (en) RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final