DE102013215529A1 - Reassign jobs to verify data quality - Google Patents

Reassign jobs to verify data quality Download PDF

Info

Publication number
DE102013215529A1
DE102013215529A1 DE102013215529.8A DE102013215529A DE102013215529A1 DE 102013215529 A1 DE102013215529 A1 DE 102013215529A1 DE 102013215529 A DE102013215529 A DE 102013215529A DE 102013215529 A1 DE102013215529 A1 DE 102013215529A1
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.)
Granted
Application number
DE102013215529.8A
Other languages
German (de)
Other versions
DE102013215529B4 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die Erfindung betrifft ein 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), der so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet, – Überwachen des Laufzeitverhaltens von dem mindestens einen ausgeführten Job; – Neuklassifizieren des mindestens einen überwachten Jobs, indem der Job einem Job-Satz neu zugeordnet wird, der das festgestellte aktuelle Laufzeitverhalten darstellt.The invention relates to a method performed 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) adapted to evaluate the data for compliance with one or more quality criteria, - monitoring the runtime behavior of the at least one executed job; - Reclassify the at least one monitored job by remapping the job to a job set representing the current runtime behavior detected.

Description

Bereich der ErfindungField 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 checking.

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 related data management systems are critical to companies from a wide variety of industries and technological backgrounds. A significant amount of money and time is devoted to the prevention and elimination of data corruption in ERP systems, as erroneous data can lead to erroneous manufacturing processes and the loss of data, rendering unusable records useless.

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 are already equipped with some integrated modules to ensure data quality. Often, as an alternative or in addition to the integrated modules, external systems are used to ensure and maintain data quality. One problem associated with the use of external data quality validation systems 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. Consequently, both the execution and the preparation of 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 checks, particularly global data quality checks involving the processing of a variety of business objects from one data source or from a plurality of distributed data sources, can be extremely time consuming. An ongoing data quality check can thus represent a bottleneck for the performance of an ERP system. Another problem is that the runtime behavior of the quality checks depending on the evaluated data and / or the response time of external resources, which have certain parts of the data of the ERP system to be evaluated, can vary greatly and unpredictably.

Kurzdarstellung der ErfindungBrief description 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, a computer-readable medium, and a computer system to control the data quality of data of an application program such as an ERP system through a data quality management system system (DQMS)). The object is solved by the features of the independent claims. Preferred embodiments are given in the dependent claims. Unless otherwise stated, embodiments of the invention may be freely combined.

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 that is capable of processing one or more business objects; h., to create, modify and / or delete. As used herein, a "business object" (BO) refers to a data object, e.g. An idoc object specified according to a "business object schema". As used here, 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 mutual correlation. For example, a business object schema may have a description of the business entity types "analysis entity" and "biological pattern", the "analysis entity" corresponding to the schema attributes such as "sample capacity", "status", "entity type" or the like and the business object type " biological pattern may include "attributes such as" pattern type, "" age, "" patient identifier, "or the like. Each instance of a BO is generated according to a respective BO definition specified in the BO scheme.

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 work item that is executed by a data processing system. Depending on the embodiment, a job may be one compiled, executable binary code, e.g. As a byte code, or act to evaluate program code. As used herein, a "runtime behavior" refers to features of the behavior of a running job. As used herein, a "rule" is any piece of software code that specifies a corresponding job and can be changed by a programmer. For example, a rule can be a Java or C ++ class, functional parts of the Java or C ++ class, 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. For example, an ERP system designed to manage data 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 (eg, storing all dates in a consistent data format), ensuring that the stored data is semantic 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 executed contiguously independently of other transactions. For example, a transaction may include passing a command to a database operatively connected to the application program to store or modify 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 persistent).

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 that is performed before a transaction is committed to ensure that the transaction is not committed if the data to be transferred in the transaction is the one evaluated by the proactive check Do not meet quality criteria.

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 audit" is a data quality audit performed after a transaction has been committed by the application program to ensure that in the event that the data transmitted in the transaction does not meet the quality criteria, which were evaluated by the reactive test, this data will be marked. Depending on the reactive test and the identified 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 herein, an 'external resource' is any data resource that resides outside the data quality management system and has some data that must be evaluated in addition to the data of a BO of an application program to validate the data quality of at least some of the BOs. The external resource may be a computer system or database that communicates with the data quality management system over a network, e.g. As the Internet or an intranet connected.

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 storage, e.g. For example, a set of directories, XML files, or preferably a relational or column-oriented 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 that is capable of giving the application program BO instances or parts of BO instances from one or more BOs, to translate the data into a data format that can be processed by the data quality management system, and to store the transformed data in a database that is operatively connected to the data quality management system. As used herein, an ETL job performing operations on a "BO level" is an ETL job that overflows the data to be transmitted not through an interface of the database in which the BOs are physically stored The application API queries which BOs and corresponding attributes are specified in the BO schema of the application program. Thus, an ETL job performing operations on a "BO level" operates on the basis of the semantic rather than 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 herein, a "legacy" interface is an existing interface of a software application, e.g. B. 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 carrying out database transactions by the application program.

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 referred to as a "parameter", is a feature 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 method performed by a computer to check the data quality of data of an application program by a data quality management system (DQMS). The method includes performing at least one job of a plurality of jobs by the DQMS. 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 a job set of a plurality of job sets, the plurality of job sets having at least a first job set and a second job set. Each of the job sets represents a category of runtime behavior. The jobs contained in each job set have been divided into the runtime behavior categories according to their runtime 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 is triggered by a scheduler of the DQMS. The method further comprises monitoring the runtime behavior of the at least one executed job by the data quality management system to determine a current runtime behavior of the job; and reclassifying the at least one monitored job by remapping the job to the job set representing the detected current runtime behavior. Preferably, the reclassification is performed automatically. In accordance with some embodiments, the reclassification may be semi-automated and may include the request to a user to agree to an automatically proposed reclassification. The features may be advantageous because depending on the run-time behavior of a job verifying data quality, the triggering mechanism that initiates execution of the job may be changed. Jobs that have been found to be able to run in a relatively short period of time may respond in response to a message, i. H. event-driven, jobs that have a different run-time behavior, such as For example, a longer execution time may be tied to a schedule. This may be particularly advantageous in the context of a DQMS because the termination of a particular type of data quality checks, e.g. Exams with a long execution time, checks that require external data resources, checks that evaluate a data log, etc., can be triggered by a scheduler when processing load is low, when network traffic to external resources is low, and / or if only a few events cause the delivery of messages 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. For example, if one or more BOs of the application program need to be evaluated that have not yet been imported into the data quality management system. The classification of the jobs as a function of a monitored rather than a predetermined and estimated runtime behavior may be advantageous in the context of a DQMS since the actual runtime behavior of a data quality check may depend on the type of data stored and thus may not be predictable. As a result, the features can provide a highly flexible DQMS capable of reclassifying data checks depending on their actual runtime behavior, while also reducing the operator's time and labor of managing the DQMS and managing job execution because both the message-driven and scheduler-controlled jobs can be fully automated.

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 to store the data in a first database operatively connected to the application program. The message has at least a portion of the data whose quality is to be evaluated, e.g. For example, certain data indicating which of the attributes of a BO should be changed in conjunction with the changed attribute value. The transaction is paused 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 given resources to complete the transaction Re-execute with changed transaction data. The features may be advantageous because they may allow the DQMS to perform jobs that are performed in certain job sets, e.g. Included in the first job set, trigger transaction-based and proactive. That is, the transaction pauses 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, eg. B. Checks performed by the jobs in the second job set and dispatched by a scheduler are not executed 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 comprise a third job set. Execution of jobs contained in the third job set is triggered by the scheduler on a regular basis and beyond upon receipt of a message sent by the application program following 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 triggered solely by the scheduler on a regular basis. The scheduler may trigger the execution of the jobs in the third job set according to a different scheme (eg more frequently) than in the second job set. However, the use of a third job set is optional. Any one of the jobs whose monitored execution time is less than a first time threshold or equal to a first time threshold is classified as a job associated with the first job set or the third job set. Any one of the jobs whose monitored execution time exceeds the first time threshold is classified as a job associated with the second job set. The features can be beneficial as they provide extremely differentiated management of jobs that check data. If a particular job performing a data quality check previously executed as a proactive job with a short execution time because of belonging to the first job set is monitored and found to be a job with a long execution time, z. Due to a change in the underlying data sets or due to a change in the response time of some additional internal or external data resources, its triggering mechanism is forcibly changed by reclassifying the job and reassigning the job to, for example, the second job set. As a result of the reassignment, the job is now not a transaction-triggered, proactive, data-reviewing job, but rather a schedule-sensitive, data-checking job. Consequently, the operator need not consider any contingencies that may affect the runtime of a job to indicate whether the job should be executed as a proactive or a reactive job. When using embodiments of the invention, the operator will eventually rely more on the automatic re-classification of the jobs depending on the monitored runtime behavior, which may also impact the triggering mechanism (transaction-based or schedule-based) to fetch the particular job. This may be particularly advantageous in a DQMS in which a transaction-driven, proactive job, which takes more time than expected, can significantly slow down the application because the transaction is paused until a response is received. Depending on the embodiment, the first time threshold may be in the range of one or more minutes, preferably less than 30 seconds, and preferably even less than 10 seconds, to avoid performance degradation of 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 contained in the same job set of job sets have one or more classification characteristics in common. The reclassification of the at least one job includes establishing a value for one or more of the classification features and reclassifying the job according to the specified values of the classification characteristics. The one or more classification features may be a repeat parameter indicating whether the job to which a corresponding parameter value has been assigned can be executed 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 differentiated classification of jobs and consequently a differentiated control over the job triggering mechanism can be provided. For example, the scheduler may have different job triggering schemes for different job sets. An operator may be involved, for example, by means of a repeat parameter assigned to each job or by means of a corresponding rule which codes the job if a particular job is to be executed repeatedly or not repeatedly. Furthermore, by considering whether a job evaluates data from two or more BOs and / or evaluates data of a BO in connection with data to be retrieved from an external resource, a classification of jobs based on the "knowledge" may also be considered. possible that the job could at least potentially be time-consuming, for example because of the possibility is that a network connection to the external resource is slow. Consequently, any job that may run slowly, such as For example, due to the evaluation of external data, for example, the second job set may be arranged to ensure that the job is not executed as a proactive data quality checking job that could slow down the application program by stopping 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 may be determined by the DQMS by evaluating program code underlying the job by providing a comment, e.g. For example, a classification parameter that evaluates the job and / or monitors the runtime behavior of the job with respect to the classification feature. For example, a job accessing an external resource can be added as a comment to the job, or it can be determined by evaluating the job's source code. If access to the external resource extends the execution time of the job, the job can be reclassified in the sequence and, for example, moved to the second job set. According to embodiments, each of the jobs is coded by a corresponding rule. Reclassifying the at least one job involves reclassifying the rule that codes the job to a rule set that represents the category of the runtime behavior of the job set to which the job is associated. The features may be advantageous as an operator of the DQMS can easily recognize and understand what type of rule and which corresponding job is currently being classified as belonging to a particular job set. The operator may also be allowed to change the rules via, for example, a graphical user interface (GUI), adding or changing a few classification parameters that can be used by the DQMS in addition to the monitored runtime behavior as a classification feature, 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 arranged to evaluate the quality criteria on a copy of one of the BOs in conjunction with other data, the further 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 have to be imported from BOs to create or update a copy of a corresponding BO may also be considered as an external resource, according to embodiments. According to embodiments, the type of jobs performing operations on a BO in conjunction with other data may be automatically determined and placed in the second job set. The features may be advantageous because jobs that are at great risk of becoming jobs with a long execution time, for example because they are performing operations on multiple BOs or external data, are considered from the beginning to be associated with the second job set 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 includes one or more copies of BOs specified by a BO scheme of the application program. The application program is operatively connected to a first database in which the BOs are stored. It may be advantageous to perform the data quality checks on copies of the data rather than the data itself, as this increases the performance of the application program, especially if the application program and the DQMS are hosted on different data processing 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 via an interface on the BO level into the second database of the DQMS. This may be advantageous as the layer abstracts from the structural details of the first database, thus making the data transfer process more general and easier to adapt to different application systems. Thus, if the internal structures of the first database were to change, the DQMS and the interface used to copy the BOs to the second database are 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 operatively 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 BO's to the BO schema to structural elements of the second database. The features may be advantageous because an association is a simple data structure consisting primarily of the assignment. It can be based on a text file or a database table that has user-readable and editable text. The features may be advantageous because a user can easily understand and change the nature of the allocation structure, and thereby adjust the manner in which the copies of the BOs in the second database correspond the requirements of the data quality checks and the framework conditions imposed by the second database. For example, it may speed data quality checks if the structure of the tables and indexes of the second database used to store the copies of the BOs is matched 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 the BO scheme and the association by the DQMS to determine attributes of BOs specified in the BO schema, which structural members are assigned to the second database; and generating one or more of the jobs as ETL jobs by the DQMS using the BO schema and / or the mapping. The features may be advantageous because in the case where 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 to bring the DQMS to the new situation adapt. In fact, only the mapping may need to be changed and, if necessary, new ETL jobs adapted to the changes need to be created to reload the data from the first database to the second database. Since the ETL jobs are automatically generated as input using the map and the BO schema, the amount of effort that the operator must drive to manage 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 have first ETL jobs and / or second ETL jobs and / or third ETL jobs. The method further comprises: executing the first ETL jobs to first create the second database; wherein the step may comprise creating a database table arranged 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 periodically update the second database are placed on the second job set or on the basis of their attached commentary that they can be executed on a regular basis and / or on the basis of their monitored runtime behavior arranged third job set. Since 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 executed on a regular basis, which is necessary for managing the DQMS Reduce time and effort and keep the second database up-to-date. In some embodiments, a third ETL job may also be classified as a job associated with the first job set, thereby ensuring that a transaction-based change of 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 changes as input; if the modified copy of the BO does not include all of the data of the BO, setting a completion parameter assigned to the changed 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, after the initiation of an update transaction (UPDATE) or a generation transaction (CREATE) with respect to the BO, the message may be sent by the application program.

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 flagging the BO as incomplete, thereby preventing evaluation of the copy of the BO by any of the quality checking jobs in the second job set.

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 the receipt of a message sent after a transaction-based change of a BO assigned to the job, the jobs in the second job set being sent solely by The scheduler is triggered periodically and the jobs in the third job set are triggered by the receipt of a message sent after a transaction-based change of a BO assigned to the job, and they are triggered by the scheduler on a regular basis. Thus, depending on the triggering mechanism actually used, the quality checking jobs in the third job set may act as proactive jobs, preventing the entry of erroneous data into the first database, or they may act responsively, and any errors that occur in the first job first and the second database were reported. This "double use" of the same job and possibly the same rule can be advantageous since No duplicates of jobs or rules need to be created to provide both proactive and reactive jobs. Both functions can be provided by the same job, which is triggered once by the scheduler and once by a transaction. As a result, duplication of the code 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, reclassifying 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 map, the transaction-based map assigning assignments of first BO attributes to BO type-specific transactions supported by a transaction-level interface of the application program; wherein an assignment of one or more attributes to one of the transactions in the transaction-based association indicates that values of the attributes are compulsorily transmitted in a message following a transaction-based change of a BO of a BO type having the attributes over the interface is handed over; Determining whether the quality criteria evaluated by the job on attributes of a BO assigned to the job are only performing operations on one or more attributes that are compulsorily received as part of a message from the application program according to the transaction-based association; if the execution time of the job falls below the first processing time threshold and if the quality criteria of the job only perform operations on attributes whose values are compulsorily received as part of a message that triggers the job, reclassifying the job from the second to the first or the third job set; if the quality criteria of the job also perform on operations whose values are not received as part of a message that triggers the execution of the job, not reordering the job from the second to the first or third job set, even if the execution time the job falls below the first processing time threshold. The features may be advantageous because they ensure that in the case where it is determined that a job is being executed quickly, the job is placed in the first job set or in the third job set only if it is ensured in that the message that can trigger the execution of the job in the future provides the job with all the data required to perform the quality checks. Jobs that check 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 completion parameter, since they are only classified as jobs belonging to The first or third job set, if according to the transaction-based association, ensures that any message that triggers the execution of the job provides the job with all the BO attributes evaluated by the quality criteria of the job.

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 a few 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 further data may be a copy of at least one other BO and / or data derived from an external resource. The features may be advantageous in that execution of any type of quality checking job contained in the second job set, which preferably has 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, wherein the copies are stored in the second database to determine if the copy has been assigned a value of a completion parameter indicating that an 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 to which the third ETL job has been assigned has been assigned a parameter value indicating incompleteness, fetching 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 completion parameter of the copy to indicate the completeness of the copy. The features may 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 changes initiated by a transaction, all have data enable certain jobs that perform global data validation (that is, data checks that evaluate the quality of data of a particular copy of a BO in combination with other data). If not, the missing data, especially missing attribute values, are retrieved from the first database using the third ETL jobs. For example, a transaction could trigger a change in a particular BO, and subsequently a modified copy of the BO can be stored in the second database. In order to perform certain data quality checks, it may be necessary to evaluate further attributes of the BO that are not changed and not transmitted to the DQMS as part of the message have been. There may have been some changes to data in the first database without triggering the delivery of a message. Thus, to ensure that all data evaluated by one particular job is also in the second database and up to date, 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 responsively to perform up-to-date copies of BOs having 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 scheme by corresponding ones of the BOs. If there is not yet a copy of the BO indicated in the message, the copy can be generated using the assigned definition of an application BO schema of the specified BO, the copy of the BO corresponding to that in the message (and in the transaction, which the message has triggered 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; Flagging the one or more jobs associated with the schema definition of the BO specified in the message, wherein the flagged jobs are contained in the first or third job set; Executing the one or more flagged jobs on the modified copy of the BO to evaluate whether the quality criteria evaluated by the jobs are met by the changed copy; and sending a response to the application program, wherein the response indicates 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 transaction data received in the message may be advantageous because the DQMS is detached from the peculiarities of the structure of the first database; it is bound only to the semantic structure of BOs specified in the BO schema of the application. This can simplify the management of the DQMS. The jobs can be assigned by corresponding BOs, for example by means of identification (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, wherein the first legacy interface was developed or used for data quality checks to be performed on transaction data, wherein a transaction is a change or storage of one of the BOs in the first database, the message having transaction data of the BO. The first interface may have been used for proactive, in-program quality checks. The method further includes using a second legacy interface of the application program to retrieve data stored in the first database to fill the second database for the first time with one or more of the jobs that are ETL jobs / 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 may be advantageous because legacy interfaces that already exist in many applications and ERP systems may be used and code may not need to be rewritten in the application program. Moreover, the features may enable to provide a DQMS capable of integrating both transaction-based, proactive data quality checks and checks performed at the BO level. For example, checks at the BO level may be necessary to evaluate the data quality and consistency of a variety of BOs. Thus, embodiments of the invention may be able to receive transaction-level data about the message, the data to create and / or modify a corresponding copy of a BO, and to perform a transaction-driven and proactive quality check using the data quality checking jobs in the first and second in the third job set as well as the scheduled, reactive, data quality checking jobs of the second and third job sets within one and the same DQMS. This overcomes a problem of the prior art data quality management systems that 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 the data quality checking jobs contained in any of the job sets perform operations on copies of the BOs and not directly on transaction data that does not have the semantic structure of the corresponding BOs. For example, the copies of the BOs stored in the second database may be generated using one of the ETL jobs generated depending on the semantic structure of the BOs specified in the BO schema of the application, or they may be from the DQMS are generated from the transaction data contained in the received message by using the BO schema of the application in association with the mapping. After the copy of the BO has been created or read, for which the Data Quality Checking job, the job is executed on the copy of the BO and not on the mere transaction 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 medium comprising computer readable program code which, when executed by a processor, causes the processor to perform a method according to any 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 having a DQMS. The DQMS comprises a processing engine, a monitoring module, a classification module and a scheduler. The DQMS is designed to check the data quality of data of an application program. The processing engine is configured to perform at least one job of a plurality of jobs, wherein the at least one executed job is arranged to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to a job set of a plurality of job sets, the plurality of job sets having at least a first job set and a second job set. Each job set of job sets represents a category of a runtime behavior, with the jobs contained in each job set being divided into the runtime behavior categories according to their respective runtime 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. Execution of the jobs contained in the second job set and the third job set is initiated by a data quality management system scheduler. The monitoring module is designed to monitor the runtime behavior of at least one of the executed jobs to determine a current runtime behavior of the job. The classification module is designed to automatically or semi-automatically re-classify the at least one monitored job by reassigning the job to the job set representing the identified 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.In some embodiments, the data is application data of the application program. The application data has a plurality of BOs. The computer system further includes 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 operatively connected to the DQMS and has a copy of the application data and the BOs in the second database according to an association. The assignment assigns attributes of the BOs of the BO schema to structural elements of the second database. The data quality management system is arranged to: access the BO schema and the mapping to determine attributes of BOs specified in the BO schema, which structural elements are assigned to the second database; generates one or more of the jobs as ETL jobs using the BO schema and / or the mapping.

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 Nachrichr weist alle BO-Attribute, die von der 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 In addition, in some embodiments, manual or semi-manual reclassification of some of the jobs may be supported. According to embodiments, the reclassification follows a scheme given in the following table: To the first rule set To the second rule set To the third rule set From the first rule set not applicable Processing time> = first time threshold (automatic or manual) Set the repeat parameter to a value indicating that repeated execution is necessary From the second rule set Processing time <first time threshold + message-triggered message Refers all BO attributes evaluated by the job to + the job does not access an external resource not applicable Processing time <first time threshold + message triggered by a transaction rejects all BO attributes evaluated by the job + the job accesses an external resource From the third rule set Repeat parameter has been set (manually or automatically) to a value that indicates that a repeated execution of the job is no longer necessary 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ägern) 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 those skilled in the art will appreciate, aspects of the present invention may be practiced as a system, method, or computer program product. Thus, aspects of the present invention may take the form of a wholly hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or an embodiment that combines software and hardware aspects, all of which are general may be referred to as a "circuit", a "module" or a "system". Moreover, aspects of the present invention may take the form of a computer program product residing on one or more computer readable media on which the computer readable program code resides. Any combination of one or more computer-readable media may be used. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. For example, a computer-readable storage medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device or any suitable combination of the above. More concrete examples (the list is not exhaustive) of the computer-readable storage medium would include: an electrical connection to one or more wires, a floppy disk of a portable computer, a hard disk, Random Access Memory (RAM), an Only 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 unit, a magnetic storage Storage unit or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any physically tangible medium that may contain or store a program for use by a command execution system, instruction execution device or unit, or for use in conjunction with an instruction execution system, instruction execution device or unit , A computer readable signal medium may include a transmitted data signal having computer readable program code 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 that is not a computer readable storage medium and that may be a program for use by an instruction execution system, instruction execution device or unit, or for use with a computer Command execution system, a command execution device or unit can transmit, forward or transport. Program code contained on a computer readable medium may be transferred by means of a suitable medium including a wireless medium, a wired medium, a fiber optic cable, radio frequency (RF), etc., without being limited thereto, or by any suitable combination of the foregoing ,

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand eines Beispiels ausführlicher beschrieben, wobei nur Bezug auf die Zeichnungen genommen wird, bei denen:Hereinafter, preferred embodiments of the invention will be described in more detail by way of example, with reference only to the drawings, in which:

1 einen Ablaufplan eines Verfahrens zeigt, das eine Neuklassifizierung von Jobs aufweist, 1 shows a flowchart of a method that has a reclassification of jobs,

2 einen Ablaufplan eines Verfahrens zeigt, das die Erzeugung von ETL-Jobs aufweist, 2 shows a flowchart of a method involving the generation of ETL jobs,

3 ein Anwendungsprogramm, z. B. ein ERP-System, und ein DQMS zeigt; und 3 an application program, e.g. An ERP system, and a DQMS; and

4 ein paar Komponenten des DQMS ausführlicher darstellt. 4 represents a few components of the DQMS in more detail.

Ausführliche Beschreibung Detailed 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 method that serves the data quality by means of a data quality management system (DQMS), as for example in 2 shown is flexible and effective to evaluate. The DQMS represents the integrity and quality of the data of an application program, e.g. For example, an ERP system that has business objects such as "customer", "order", "department" or "employee". This is done through proactive data quality checks that prevent from the outset that erroneous data is added, and / or through reactive data quality checks that automatically detect and optionally eliminate erroneous data after most of the data in the ERP database System was saved. For example, the DQMS can automatically ensure that customer address data, e.g. As e-mail addresses, birth data and the like, are entered in a data format that is consistent and valid. Moreover, data quality checks that perform on multiple BOs operations could ensure that the semantic content of different BOs does not conflict. For example, you should not allow two different customers to be assigned to a given job. If more than one company has been assigned to a particular department of a company, 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 tailoring the respective triggering mechanism to the supervised 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 interference performance of the ERP system. By automatically creating ETL jobs, both the total cost of ownership of the DQMS and the lead time required to build 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 who in 1 is shown, a DQMS performs at least one job of a plurality of jobs. At least some of the jobs are designed to evaluate application program data for compliance with one or more quality criteria. The plurality of jobs may also include one or more ETL jobs to create, populate, and / or update a database of the DQMS having copies of application program BOs for the first time. In step 104 A monitoring module of the DQMS monitors the runtime behavior of the one or more executed jobs to determine the current runtime behavior of the jobs. The information is in step 106 used by a classification module to reclassify the one or more watched jobs by remapping the jobs to a job set representing the identified runtime 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 shows a flowchart of a method that has the automatic generation of ETL jobs. A portion of the ETL jobs may depend on the monitored run-time behavior of the jobs, and optionally also on certain classification characteristics assigned by a user to the jobs or automatically assigned, and optionally also on a transaction-based assignment 323 be reclassified. In step 202 automatically generates one or more ETL jobs to create, first fill and / or update a DQMS database, the DQMS database, also referred to herein as a "second database", is operatively connected to the DQMS and used to store copies of application program BOs. The generation comprises an evaluation of a BO schema of the application program and an evaluation of an assignment. The mapping assigns tree elements of the second database BO types and their corresponding attributes. The assignment can be changed by a user of the DQMS, for example via a graphical user interface. By manually adjusting the mapping to meet constraints imposed by the second database or other factors, it is thus possible to easily adapt the DQMS and ETL jobs to the constraints without manually changing existing ETL jobs and without new ones Manually recreate ETL jobs in a time-consuming manner. In step 204 execute the one or more ETL jobs that serve to first create and populate the second database. This automatically creates the second database and populates it with automatically generated copies of the application's BOs. In step 206 The DQMS can receive a message from the application program. The message is sent after the application program has executed a database transaction on a BO that is to be created, modified or deleted. The message has an indication of the BO and may also have the changes to be made to the BO, e.g. One or more changed attribute values or the like. The reception of the message triggers in step 208 the execution of quality checking jobs assigned to the BO specified in the message and contained in a first or third job set, the first job set of jobs triggered by a transaction having a short duration Has execution time that runs only once after a transaction. The third job set includes short-execution-time-triggered jobs and short-execution-time jobs triggered by a scheduler that execute on attributes of only a single BO (ie, data associated with a transaction-controlled message from the application program, the make a transaction-based change to the BO, will be received obligatorily). The data quality checking jobs executed as jobs associated with the first job set and the job jobs controlled by the third job set are performed as proactive checks. That is, the respective quality checks are initiated by the transaction (ie, by receiving the message) and the transaction is paused until the application program receives a response that has an evaluation result from the data quality checking jobs included in the first and second jobs or 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 is transaction-based generation or the transaction-based deletion of this BO copy (CBO) has not met quality requirements. Since the second database has copies of the BOs of the application program, the result of the quality checking jobs computed for the copies of the BOs also applies to the corresponding BOs of the application program.

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 in step 208 determining that the transaction does not violate the quality requirements evaluated by the quality checking jobs in the first and / or third job set, the called party triggers the application program to commit the suspended transaction. In step 210 the DQMS marks the copy of the BO as incomplete if the message did not have all the attribute values making 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 association with the mapping and the second database, in which the corresponding attribute values are stored in the structural elements specified in the mapping. In step 212 A DQMS scheduler triggers the execution of jobs contained in a second job set that contains long-running jobs. Reactive data quality checking jobs with long execution time and / or ETL jobs updating the BOs. The scheduler may also trigger the execution of jobs contained in a third job set that has reactive, data quality checking jobs with a short execution time. Each of the reactive data quality checking jobs and / or each of the BO update ETL jobs may be assigned one or more of the BOs specified in the BO schema of the application. If any of the BO copies are flagged as incomplete, a BO update ETL job dispatched by the scheduler, which is assigned to the BO, determines the missing attributes and automatically invokes the attribute values through a business object-level interface of the application program the copy of the BO with the retrieved attribute values and sets a value of the completion parameter of the copy to "complete". The data quality checking jobs included in the second job set are prevented from evaluating a copy of a BO identified as "incomplete". If the respectively assigned BO copies are marked as "complete", the reactive data quality checking jobs will evaluate the copy of the BO and optionally other data, e.g. For example, the data contained in other BOs or external resources is used to determine if the data quality of the BO violates certain quality requirements. The result of at least the quality checks performed by the quality checking jobs contained in the second job set may be stored in the form of a report stored in the DQMS, displayed to a user, and / or 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 BO1 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 shows a block diagram of a distributed computer system 300 , which is a first computer system 358 and a second computer system 302 having. The first computer system has a memory 360 , a processor 262 and a storage medium 364 on. The first computer system hosts an application program 366 having a plurality of BOs BO1 to BO4 corresponding to a BO scheme 368 the application are specified. The application program has an interface 372 at transaction level to transactions to a first database 374 which is operatively connected to the application program. The first application program may 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 points 366 an interface also referred to herein as an "application API" 370 at the business object level, that of the ETL jobs in the DQMS 310 used to retrieve data for the first time to fill and update the BO copies CBO1 to CBO4 contained in the second database. The source code of the application program may include some instructions in instruction blocks, each specifying a transaction, stopping the transaction, and sending a message to the DQMS 310 cause. The transaction is committed only in the first database when this message MS receives a response R from the DQMS indicating that the data quality of the transaction is in order. The message may include an indication of the BO to be generated, changed or deleted in the transaction, and optionally also the data to be used for the change. According to other implementation variants, an intercept module that may be shared with the application program and the first database may intercept any transaction that is to be executed by the application program on the first database and pause the transaction until the response is received. The second computer system 302 has a memory 304 , a processor 306 and a storage medium 308 on. The second computer system hosts a DQMS 310 that is capable of having an interface 370 BO data BO data from the application program 366 to receive and after the execution of a transaction by the application program to receive a message MS and a response R via an interface 372 to be returned at the transaction level. The DQMS 310 has a variety of modules, for. For example, a job factory module 316 to automatically generate one or more ETL jobs, a monitoring module 322 to the runtime behavior of a variety of jobs 332 to be monitored by a processing engine 319 be executed. The DQMS has an association 318 on, z. For example, a file or a database table that has text readable by a user, wherein the association includes structure elements (eg, tables 326 . 328 and columns) of the second database 324 BOs (which have the same semantic structure and definition of the BO schema as the copies of the BOs) and their attributes. A transaction-based assignment 323 , z. For example, a file or a database entry has transactions that are from the transaction-level interface 372 BO attributes, indicating whether all attributes evaluated by a job triggered after a transaction-based change of a BO that has the attributes will be received by the DQMS as part of the message MS. The transaction-based assignment can also be used in conjunction with the assignment 318 may be used to instantiate a copy of the BO after receiving a message having at least a few attribute values of the BO. Furthermore, the DQMS has a copy 312 of the application program 366 used BO schemes or is designed to be on the BO scheme 312 the application program stored in the first computer system. The BOs BO1 to BO4 are in the first database 374 saved. Corresponding copies CBO1 to CBO4 of the BOs BO1 to BO4 are stored in the second database after one or more ETL jobs have been executed to the second database 324 create and fill. The tabular structure of the second database may 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 must adjust the routines that store data accordingly. A combination of the BO schema 312 the application, the assignment 318 and in the second database 324 contained data supplies the job factory 316 with all the information needed to automatically generate the ETL jobs, and provides the processing engine 319 Have enough information to tell you if a particular copy of a BO is complete. The jobs 332 are grouped together into a multitude of different job records, which are each characterized at least by a specific runtime behavior. The first job set 334 and the third job set 338 each have jobs with short execution times, eg. For example, the data quality checking jobs and / or ETL jobs updating the BOs. The execution of jobs contained in the first and third job sets is triggered by a transaction (ie, by receiving the message). Jobs in the first job set are executed only in response to the transaction. The jobs in the second and third job sets are executed periodically and by the scheduler 314 triggered. The second job set 336 has jobs with long execution times. For example, data quality checking jobs and / or BO update ETL jobs. A fourth job set (not shown) may be jobs, e.g. For example, the job 330 , which are to be executed only once, in order to create and / or to fill the second database for the first time. The runtime behavior of any of the jobs 332 is from the monitoring module 322 supervised. The classification module 320 is designed to reclassify jobs based on at least the monitored runtime behavior. The data quality checking jobs included 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 paused until the execution of the checks completes and until a response is received indicating that the data quality is in order. 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, thereby preventing the entry of bad or poor quality data into the first database. Since the data quality checking jobs contained in the first and third job sets can be executed quickly, stopping the transaction ensuring that low-quality data is not stored until the response is received, without degrading the performance of the application program. The jobs contained in the second job set, and in the case where they are controlled 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 correspondingly modified copies of BOs contained in the second database. As a result, the reactive jobs can not prevent the storage of erroneous data, but they can detect errors and report them. Since it has been 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 conjunction with one or more other BOs and / or in conjunction with data stored in an external resource 354 are included. The external resource 354 can over a network 356 connected to the second computer system. Since the data to be evaluated must be transmitted over a network, data quality checks involving data from external resources may be particularly slow, and stopping a transaction until this type of "cross-BO" or "cross-data-resource" checks are complete could Slow down the application program significantly. Because the data quality checks are performed as reactive quality checks on copies of the BOs (and not on the original BOs of the first database) bound to a schedule, the performance of the application program is not adversely 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 represented components of the DQMS 310 More specifically, certain arrows 1a) through 5) are used to illustrate dynamic aspects of the components of the DQMS. The DQMS can be connected via an interface 372 Transaction level receive a message MS from an application program. 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 particular attribute value 'XY'. The processing engine 319 determined on the basis of the assignment 318 and the application schema 312 a corresponding copy CBO2 of the business object BO2. The processing engine may change the copy CBO2 by setting its attribute A2 to "XY". Moreover, the processing engine may determine that not all attributes of that copy CBO2 have already been received and stored in the second database. Therefore, the processing engine may flag the CBO2 as incomplete by setting a completeness property to incomplete. 402 puts. The processing engine 319 can, as indicated by the arrow 1a), trigger jobs with short execution time, which are included in the first job set. The jobs can be data quality checks 340 . 342 with short execution time evaluating the data quality of the data contained in the message and / or in the already existing attributes of the CBO2 copy of the data object. Parallel to 1a), the processing engine 319 after receiving the message, trigger the execution of jobs in the third job set 338 are included, which has jobs with a short execution time, as indicated by the arrow 1c). In response to 1a) and 1c) the jobs 340 . 342 . 350 and or 352 to the data contained in the received message and to the data already contained in the copy CBO2, as indicated by the arrows 2a) and 2c). Regardless of whether the message MS was received, the scheduler triggers 314 periodically executing all jobs in the first and third job sets. For example, if A2 represents the attribute "email address" and XY is a particular email address of a customer, the job may 340 check whether the attribute value XY is a symbol '@' and a valid one, followed by a '.' has a separate top-level domain from a domain scope corresponding to the prefix@domain.topleveldomain pattern. The job 350 or the job 352 may be responsible for determining if the e-mail address is included in a black list of e-mail addresses. Since the blacklist can be continually updated, periodically running the job to determine if any email address assigned to the attribute A2 is in the blacklist can ensure that there is no email address that is in the blacklist. is stored in or managed in the second database and consequently not in the first database of the application program. The execution of the jobs in the second job set 336 is not received by the message, but rather by the scheduler 314 triggered. If the scheduler should initiate execution of the jobs in the second job set, the second jobs do not perform their respective data quality checks on the CBO2 copy because it has been marked as incomplete (see 2b): NO check!). However, the scheduler may be executing an ETL update job 348 that can be executed to retrieve the missing attribute values through the interface 370 at the BO level from the application program and to complete the CBO2 copy. Depending on the particular embodiment and the respective runtime behavior of the individual ETL update jobs, an ETL update job may be used to retrieve missing attribute values in any of the job sets, ie in the first job set, in the second job set, or in the third job set, to be included. Thus, the retrieval of missing attribute values and / or the retrieval of BOs newly added to the first database may be from ETL jobs 341 that are included in the first job set or from the ETL job 348 that is contained in the second job set. The ETL Update Jobs 341 or 348 call all missing data copy CBO2 through an interface 370 at the BO level, as indicated by the arrow 3). After the missing data has been retrieved, the copy CBO2 is updated with the additional data, producing the complete copy CBO2 '. The completeness parameter of the copy CBO2 'is set to the value "complete". 404 set. The next time the execution of a data quality checking job contained in the second job set and assigned to BO2 (and hence CBO2 'accordingly) is triggered by the scheduler, the job becomes 344 . 346 as indicated by arrow 4) is also executed on CBO2 'because the completeness parameter of CBO2' indicates completeness. Finally, a report is generated as indicated by the 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 contained in the first and / or the third job set. The report can, for. B. issued via a graphical user interface to a user, sent back to the application program and / or in the storage medium 308 get saved.

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 computer-implemented method for monitoring the data quality of data of an application program ( 366 ) by a data quality management system ( 310 ), the method comprising: - executing ( 102 ) of at least one job of a plurality of jobs ( 332 ) by the data quality management system, the at least one job being arranged to evaluate the data for compliance with one or more quality criteria, each of the jobs being a job set of a plurality of job sets ( 334 . 336 . 338 ), the plurality of job sets having at least a first job set ( 334 ) and a second job set ( 336 ) having; Where each job set of job sets represents a category of a runtime behavior, with the jobs contained in each job set being divided into the runtime behavior categories according to their respective runtime behavior; Wherein the execution of the jobs contained in the first job set is triggered by a message (MS) that receives the data quality management system from the application program; Where the execution of the jobs contained in the second job set is performed by a scheduler ( 314 ) of the data quality management system is triggered; Monitoring the runtime behavior of the at least one executed job by the data quality management system to determine a current runtime behavior of the job; - Reclassify the at least one monitored job by remapping the job to the job set that represents the detected current runtime behavior. 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.The computer-implemented method of claim 1, wherein the message is received by the data quality management system from the application program after the application program executes a database transaction to store the data in a first database (Fig. 374 ), the first database operatively connected to the application program, the message having at least a portion of the data whose quality is to be evaluated; wherein the transaction is halted 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-implemented method according to any one of claims 1 to 2, - wherein the job sets further comprise a third job set ( 338 ), wherein the execution of jobs included in the third job set is regularly triggered by the scheduler and, in addition, upon receipt of a message issued by the application program following a transaction-based change of one of the business objects assigned to the job - the execution of the jobs of the second job set is triggered solely by the scheduler on a regular basis; - wherein any of the jobs whose execution time is less than a first time threshold or equal to a first time threshold is classified as a job associated with the first job set or the third job set; Wherein any one of the jobs whose execution time exceeds the first time threshold is classified as a job associated with 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.The computer-implemented method of one of claims 1 to 3, wherein all jobs contained in the same job set of job sets have one or more classification characteristics in common, the reclassification of the at least one job to determine a value for having one or more of the classification features and reclassifying the job according to the determined values of the classification features, wherein the one or more classification features are selected in any combination from a group comprising: • a retry parameter indicating whether the job to which a corresponding parameter value has been assigned is executed 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.The computer-implemented method of one of claims 1 to 4, wherein at least one further job of the plurality of jobs is arranged to evaluate quality criteria on a copy (CBO2) of one of the business objects (BO2) in conjunction with other data the other data is a copy of at least one other business object and / or data from an external resource ( 354 ), wherein the method comprises. - determining that the further job evaluates quality criteria on a copy (CBO2) of one of the business objects (BO2) in conjunction with other data; As a result of determining, 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-implemented method as claimed in any one of the preceding claims, wherein the data to be checked for quality is application data comprising one or more business objects (BO1 through BO4) that is distinct from a business object schema ( 312 ) of the application program; where the application program is provided with a first database ( 374 ) is operably connected, in which the business objects (BO1 to BO4) are stored; the data quality management system having 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) corresponding to an association ( 318 ), wherein the assignment of structural elements ( 326 . 328 ) of the second database attributes of the business objects of the business object schema ( 312 ) assigns; the method further comprising: - accessing the business object schema ( 312 ) and the assignment ( 318 ) by the data quality management system to determine attributes (A1, A2, ..., An) of business objects specified in the business object schema, the attributes being associated with the structural elements of the second database; - generating one or more 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 (CBO1 bis CBO4) der Geschäftsobjekte zu aktualisieren.A computer-executed method according to any one of the preceding claims, wherein the plurality of jobs comprises one or more ETL jobs ( 341 . 348 . 330 ), wherein the ETL jobs comprise first ETL jobs and / or second ETL jobs and / or third ETL jobs, the method further comprising: - executing the first ETL jobs ( 330 ) first to the second database ( 324 ) create; and / or - executing the second ETL jobs to populate the second database with copies of the business objects of the first database; and / or - regularly running the third ETL jobs ( 348 ) to update one or more copies (CBO1 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-implemented method according to any one of claims 1 to 7, the method comprising: - receiving the message (MS) from the application program, the message being a business object (BO2) of the business objects (BO1 to BO4) stored in the first database; Specifies changes to be made to the business object; - Changing a copy (CBO2) of the specified business object (BO2), using the specified changes as input in the second database ( 324 ) is stored; - if the changed copy of the business object does not contain all the data of the business object, set a completeness parameter assigned to the changed copy to a value ( 402 ), which indicates that the copy has one or more missing attributes that the data quality management system has not yet received from the application program. 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.The computer-implemented method of claim 8, wherein changing the copy of the business object in the second database comprises setting a completion parameter assigned to the copy to a value ( 402 indicative of incompleteness, thereby preventing any of the quality criteria at the copy (CBO2) from examining data quality checking jobs specified in the second job set (CBO2). 336 ), the data quality checking jobs that are included in the first job set ( 334 ) and / or in the third job set ( 338 ) are capable of evaluating their respective quality criteria at the copy of the business object, regardless of the value of the completion 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-implemented method according to any one of claims 7 to 9, wherein periodically executing the third ETL jobs ( 348 ): evaluating each copy of a corresponding one of the business objects, storing the copies in the second database to determine if the copy has a value ( 402 ) an integrity 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 one or the missing attributes from the application program; • Update the copy of the business object, completing the copy with the retrieved missing attributes, and changing the value ( 404 ) of the integrity parameter of the copy to indicate the integrity 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 (CBO2) eines in der Nachricht angegebenen Geschäftsobjekts (BO2) 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.The computer-implemented method of any one of claims 1 to 10, wherein each of the jobs has been assigned a definition of a business object schema of corresponding ones of the business objects, the method comprising: - changing a copy (CBO2) of a business object (BO2) specified in the message according to data contained in the message; - identifying one or more jobs contained in the first or third job set and associated with the schema definition of the business object specified in the message; - executing the one or more flagged jobs on the changed copy of the business object to evaluate 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-implemented method according to any one of claims 1 to 11, wherein the message is transmitted via a first legacy interface ( 372 ), the first legacy interface being developed or used for data quality checks to be performed on transaction data, where a transaction is a modification or storage of one of the business objects in the first database ( 374 ), the message having 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 the second database ( 324 ) to fill and / or update one or more of the jobs that are ETL jobs for the first time, with the ETL jobs performing 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.Computer-readable data carriers ( 308 ) having implemented therewith computer readable program code 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 ), which is a processing engine ( 319 ), a monitoring module ( 322 ), a classification module ( 320 ) and a scheduler ( 314 ), wherein the quality management system is designed to reduce the data quality of data of an application program ( 366 ) checks; Wherein the processing engine is adapted to perform at least one job of a plurality of jobs ( 332 ), wherein the at least one executed job is arranged to evaluate the data (CBO2) for compliance with one or more quality criteria, Where each of the jobs is a job set of a plurality of job sets ( 334 . 336 . 338 ), the plurality of job sets having at least a first job set ( 334 ) and a second job set ( 336 ) having; Where each job set of job sets represents a category of a runtime behavior, with the jobs contained in each job set being divided into the runtime behavior categories according to their respective runtime behavior; Wherein the execution of the jobs contained in the first job set is triggered by a message (MS) that receives the data quality management system from the application program; Wherein the execution of the jobs contained in the second job set is triggered by the scheduler; - wherein the monitoring module is adapted to monitor the runtime behavior of at least one of the executed jobs to determine a current runtime behavior of the job; - wherein the classification module is adapted to reclassify the at least one monitored job by reallocating the job to the job set representing the identified 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.The computer system of claim 14, wherein the data is application data of the application program, the application data comprising a plurality of business objects (BO1 through BO4), the computer system further comprising: the application program; - a first database ( 374 ), where the application program with the first database ( 374 ) is operably connected, in which the business objects are stored; - a second database ( 324 ) operatively connected to the data quality management system, the second database storing a copy of the application data and copies (CBO1 to CBO4) of the corresponding business objects in the second database according to an association ( 318 ), wherein the mapping assigns attributes of the business objects of the business object schema to the structural elements of the second database; wherein the data quality management system is adapted to: - the business object schema ( 312 ) and accesses the mapping to determine attributes of business objects specified in the business object schema, which structural elements ( 326 . 328 ) are assigned to the second database; - creates 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 true DE102013215529A1 (en) 2015-02-12
DE102013215529B4 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
DE102013215529B4 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
DE69736748T2 (en) EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION
DE102012208141B4 (en) Compensation for decreasing functionality
DE60315996T2 (en) METHOD AND DEVICE FOR DATA MOVEMENT BY LOCKING
DE112019003833T5 (en) WEAKNESS POINT ANALYSIS OF OPEN SOURCE SOFTWARE
DE112020004623T5 (en) ML-BASED EVENT HANDLING
DE69815946T2 (en) Information processing apparatus
DE202013012496U1 (en) Systems for asynchronous schema changes
DE102014215621A1 (en) Template system for generating customized documents
DE112020000467T5 (en) FINAL STATE MACHINES FOR IMPLEMENTING WORKFLOWS FOR DATA OBJECTS MANAGED BY A DATA PROCESSING SYSTEM
DE102012223167B4 (en) Sharing artifacts between collaborative systems
DE112012005051T5 (en) Fix delivery system
DE102014116369A1 (en) MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
DE112011101793T5 (en) Shared data usage with file clones
DE102019131291B4 (en) SIMULTANEOUS PERFORMANCE OF SERVICES
DE102013200355A1 (en) Merging of documents based on the knowledge of a document schema
DE102021125630A1 (en) DATA SYNCHRONIZATION IN A DATA ANALYSIS SYSTEM
DE112010004003T5 (en) A method of training and using a classification model with association rules models
DE112018001290T5 (en) Method for estimating the erasability of data objects
DE112011103428T5 (en) Automated analysis of composite applications
DE112022001326T5 (en) CREATE AND EXECUTE PROCESS FLOWS TO CORRECT DATA QUALITY ISSUES IN DATA ASSETS
DE102021130957A1 (en) RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES
DE102012001406A1 (en) Automatic configuration of a product data management system
DE112022000878T5 (en) DATASET MULTIPLEXER FOR DATA PROCESSING SYSTEM
DE112018005620T5 (en) ORDER MANAGEMENT IN A DATA PROCESSING SYSTEM
DE102021123578A1 (en) MEASURE THE DATA QUALITY OF DATA IN A GRAPH DATABASE

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