[go: up one dir, main page]

DE20014430U1 - Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen - Google Patents

Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen

Info

Publication number
DE20014430U1
DE20014430U1 DE20014430U DE20014430U DE20014430U1 DE 20014430 U1 DE20014430 U1 DE 20014430U1 DE 20014430 U DE20014430 U DE 20014430U DE 20014430 U DE20014430 U DE 20014430U DE 20014430 U1 DE20014430 U1 DE 20014430U1
Authority
DE
Germany
Prior art keywords
unit
code
data
expression
decision
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.)
Expired - Lifetime
Application number
DE20014430U
Other languages
English (en)
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.)
INNOVATIONS GmbH
Original Assignee
INNOVATIONS GmbH
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 INNOVATIONS GmbH filed Critical INNOVATIONS GmbH
Priority to DE20014430U priority Critical patent/DE20014430U1/de
Publication of DE20014430U1 publication Critical patent/DE20014430U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Description

HlEBSCH PEEGE B E H R1W A N &Ngr;··' \.· ·
PATENTANWÄLTE EUROPEAN PATENT AND TRADEMARK ATTORNEYS
Antrag auf Eintragung eines Gebrauchsmusters
(31) Prioritätsnummer/ Priority Application Number:
(32) Prioritätstag / Priority Date:
(33) Prioritätsland / Priority Country:
Unser Zeichen: 1271DE7 B/mü
(54) Titel/Title:
Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen
(71) Anmelder/in I Applicant:
Innovations GmbH Ziegelei 5
88090 Immenstaad Deutschland
(74) Vertreter I Agen t:
Dipl.-Ing. Gerhard F. Hiebsch
Dipl.-Ing. Dr. oec. Niels Behrmann M.B.A. (NY)
Heinrich-Weber-Platz 1
78224 Singen
zu jfter JVirksanJkeit sttitijiliffity Bestfiticjjng lEinf^h B*Q.D£.UI*S E 6P.
I271DE7 - 1 -
Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen
Die vorliegende Erfindung betrifft eine Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen mittels einer elektronischen Datenverarbeitungsvorrichtung nach dem Oberbegriff des Anspruchs 1.
Eine derartige Vorrichtung ist aus dem Stand der Technik bekannt, beispielsweise in Form von gängigen Datenverarbeitungsvorrichtungen, etwa PCs, die mit einer zum Prozessentwurf sowie zur grafischen Prozessdarstellung vorgesehenen Software betreibbar sind. Ein typisches Beispiel ist das bekannte Programm VISIO des Herstellers Microsoft, mit welchem Prozessflussdiagramme zur Ausgabe auf einem Bildschirm oder einer Druckereinheit erstellbar sind, die von einem Benutzer durch Auswahl aus vorgegebenen (jeweiligen Prozessschritten entsprechenden) Symbolbibliotheken sowie durch nachfolgendes Verketten dieser Symbole mittels grafischer Elemente herstellbar sind.
Im Ergebnis entstehen dann Papier- oder elektronische Dokumente, die sich insbesondere bei der Dokumentation und der Steuerung von Prozessabläufen, insbesondere auch Prozessabläufen industrieller Art, wie etwa bei Herstellungs- und Logistikprozessen, bewährt haben.
Allerdings handelt es sich bei dem Produkt einer derartigen, bekannten Technologie lediglich um ein passives Dokument, also eine reine Wiedergabe bzw. Darstellung eines Prozessmodells, ohne dass ein Benutzer die erzeugte grafische bzw. elektronische Darstellung unmittelbar benutzen könnte, um damit weitergehende Beobachtungs-, Simulationsoder Kontrollschritte durchführen zu können. Vielmehr ist es im Stand der Technik üblich, auf der Basis von in der bekannten Weise erzeugten Prozessmodellen dann jeweils einzelne Schritte getrennt (und oftmals auch mit elektronischen Mitteln) zu steuern und zu überwachen, um dann zu ei-
I271DE7 - 2 -
nem Gesamtbild erst nach aufwendigen (und niemals vollständig automatisierbaren) Koordinationsschritten zu gelangen. Im Ergebnis sind somit traditionelle, bekannte Vorgänge in der Modellierung, Beobachtung und Simulation von Ablaufprozessen aufwendig und verursachen entsprechend hohe Kosten, insbesondere, wenn beabsichtigt ist, einzelne oder mehrere der in einer jeweiligen Modellierung zusammengefassten Prozessschritte einer weitergehenden elektronischen Ver- bzw. Bearbeitung zugänglich zu machen.
Zwar existieren weiterhin im Stand der Technik zahlreiche computerisierte bzw. computerunterstützte Werkzeuge zur Unterstützung der Herstellung von lauffähigen Computeranwendungen (sog. CASE-Werkzeuge) , insbesondere jedoch zur konsequenten, ablauf- bzw. prozessorientierten Realisierung des kritischen Bindegliedes zwischen einer rein grafischen Repräsentierung eines Prozessablaufs und einem in einem Computer lauffähigen Programmcode eignen sich derartige, bekannte Anwendungen nicht.
Aufgabe der vorliegenden Erfindung ist es daher, eine gattungsbildende, grafisch orientierte Anwendungsplattform zur Konstruktion und Modellierung von Geschäftsprozessen dahingehend weiterzubilden, dass die so (bislang lediglich zum passiven Betrachten) abgebildeten Geschäftsprozesse bis zu einem eigenständigen ablauffähigen Programmcode entwickelt werden können, welcher dann, auf der Basis von nach dem modulierten Prozessablauf zu behandelnder Eingangsdaten, den Prozess nicht nur darstellt, sondern ihn auch tatsächlich ausführt, mithin also aufgabenbezogene Ausgangsdaten produziert .
Die Aufgabe wird durch die Vorrichtung mit den Merkmalen des Hauptanspruchs gelöst; vorteilhafte Weiterbildungen sind in den Unteransprüchen beschrieben.
I271DE7 - 3
In erfindungsgemäß vorteilhafter Weise sorgt die der Struktur- und Visualisierungseinheit nachgeschaltete Umsetzungseinheit dafür, dass der als Ergebnis der Modellierung des Prozessablaufs entstandene Format- bzw. Strukturcode in einen ablauffähigen, damit insbesondere auch das praktische Ausführen des Prozessmodells erlaubenden Ablaufcode umgesetzt wird, wobei zu diesem Zweck dann die erfindungsgemäße Ablaufeinheit in der Datenverarbeitungsvorrichtung vorgesehen ist. Im Rahmen der vorliegenden Erfindung sind diese Einheiten dabei funktionell miteinander so integriert, dass insbesondere ein Benutzer nicht etwa in die erfindungsgemäßen Funktionsabläufe des Umsetzens in den Ablaufcode bzw. das nachfolgende Ablaufen eingreifen muss; vielmehr ist im Rahmen der Erfindung das Erzeugen des lauffähigen Ablaufcodes das unmittelbare Ergebnis des (durch Grafik und entsprechende Symbole unterstützten) Modellierens mit Hilfe der Struktur- und Visualisierungseinheit.
In besonders vorteilhafter Weise wird dabei bevorzugt Gebrauch gemacht von XML als Format- bzw. Struktursprache, die nicht nur äußerste Flexibilität bei der Modellierung ermöglicht, sondern auch die der vorliegenden Erfindung zugrunde liegende Integration der verschiedenen Einheiten optimal unterstützt. Entsprechend ist es im Rahmen der vorliegenden Erfindung besonders vorteilhaft, JAVA-Quellcode (und ggf. nachfolgendes JAVA-Compilat) mittels der Umsetzungseinheit zu erzeugen; nicht nur bietet JAVA in idealer Weise die Möglichkeit für eine wirklich plattformübergreifende (d. h. auf diversen Betriebssystemen wie Windows, Unix oder MacOS) lauffähigen Codes, auch liegt ein besonderer Vorteil der Verwendung von JAVA darin, dass die weiterbildungsgemäß insbesondere für einzelne Regel- und/oder Entscheidungsschritte (bzw. Gruppen von diesen) erzeugten JAVA-Klassen (Bibliotheken) in einer Ablaufumgebung dynamisch austauschbar sind; dies erweist sich insbesondere dann als vorteilhaft, wenn innerhalb einer interaktiven Anwendung für eine Mehrzahl von gleichzeitig auf die Ablaufeinheit zugreifenden Benutzern (und unter mehrfacher Ver-
· ♦
I271DE7 - 4 -
wendung einer solchen Klassenbibliothek für die verschiedenen Anwender-Bedürfnisse) eine jeweilige JAVA-Klasse ausgetauscht bzw. aktualisiert werden kann, ohne dass die Ablaufeinheit (bzw. zugehörige Rahmenapplikationen, etwa auf einem geeigneten Server) jedesmal neu gestartet werden müssen, wenn sich eine in Bezug genommene Programmklasse ändert.
Mit der vorliegenden Erfindung ist es somit möglich, in Erweiterung der klassischen, lediglich auf passives Betrachten beschränkten Visualisierung von Prozessabläufen nunmehr auch diese Prozessabläufe auf konkrete Eingangsdaten auszuüben, um damit dann eine entsprechendes datenmäßiges Ergebnis zu erzeugen; aus einer reinen Prozessablauf-Visualisierung entsteht somit eine insbesondere für einen Batch-Betrieb geeignete AblaufUmgebung, die das von einem Nutzer entworfene (modellierte) Prozessmodell unmittelbar in eine echte operative bzw. Betriebsumgebung umsetzt und damit zusätzlich wertschöpfend wirkt.
Dabei hat sich als besonders bevorzugt insbesondere auch die gemäß einer bevorzugten Weiterbildung als Regel- bzw. Entscheidungsschritt realisierbare "Best-of"-Funktion bewährt, nämlich die Möglichkeit, aus einer vorbestimmten Menge von Eingangsdaten die nach einem vorgebbaren bzw. wählbaren Kriterium "besten" zu selektieren.
In besonders geeigneter Weise findet die vorliegende Erfindung Anwendung in einem Computernetzwerk, so dass insbesondere auch eine Mehrzahl von Nutzern (Clients) auf zentrale, d. h. in einem Server vorgesehene gemeinsame Einheiten, insbesondere die erfindungsgemäße Umsetzungseinheit und/oder die Ablaufeinheit, zugreifen können. Eine derartige Architektur besitzt den Vorteil, dass insbesondere in komplexen Entwicklungsumgebungen serverseitig sämtliche etwaigen benötigten Ressourcen, eingeschlossen bereits existierende Ablaufcodeklassen bzw. -bibliotheken, vorhanden sind und diese nicht sämtlichst lokal bei einem Client in-
I271DE7 - 5 - · — &Ggr; \.:\/· I Il ·
stalliert werden müssen. Gleichwohl liegt es auch im Rahmen der Erfindung, in flexibler Weise die zur Durchführung der Erfindung notwendigen Einheiten so auf einem Client- und/oder einem Serverrechner vorzusehen, dass beliebige Anwendungen im Nutzerinteresse möglich sind, so insbesondere auch das (vom Rechnernetz gelöste) Betreiben einer portablen Einheit mit einem (zu modellierenden oder bereits ablauffähigen) Prozessmodell im Rahmen der vorliegenden Erfindung.
In besonders vorteilhafter Weise ist es zudem im Rahmen einer Weiterbildung der Erfindung möglich, einzelne oder mehrere modellierte Prozessabläufe selbst wiederum als Prozessschritte (bzw. Regel- und/oder Entscheidungsschritte) zu betrachten und entsprechend umzusetzen, so dass insbesondere auch komplexe AblaufStrukturen einfach und übersichtlich modellierbar werden, die zudem noch in effizienter Weise von bereits existierenden Prozessabläufen (im weiteren auch als "Regelbäume" bezeichnet) profitieren können, ohne dass dies die Übersichtlichkeit beeinträchtigt: In vorteilhafter Weise sind nämlich derartige, mit der weiterbildungsgemäß vorgesehenen Makroeinheit auf einen Einzelschritt reduzierte Regelbäume wiederum lediglich mittels eines Eingabedatums und eines oder mehrerer Ausgabedaten ansprech- und einbindbar.
Gemäß einer weiteren, bevorzugten Weiterbildung ist es zudem möglich, eine Mehrzahl verschiedener Prozessabläufe situationsabhängig bzw. nach Maßgabe eines übergeordneten Prozessmodells zusammenzuführen und zu koordinieren, wobei zu diesem Zweck die weiterbildungsgemäß vorgesehene MetaEinheit Einsatz findet.
Im Ergebnis wird durch die erfindungsgemäße Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen erreicht, dass für eine nahezu unbegrenzte Anzahl von Prozessabläufen, nämlich all solchen, die auf quantitative bzw. quantitativ behandelbare Daten wirken und durch Regel-
bäume darstellen lassen, eine Automatisierung der Erzeugung von ablauffähigem Code erreicht wird, ohne dass ein Benutzer, über seine Kenntnis von dem jeweiligen Prozess hinaus, irgendwelche Programmier-, Strukturier- oder (Software-) Designkenntnisse haben muss, so dass insbesondere in Anwendungsumgebungen, die traditionell eine intensive Interaktion zwischen eigentlichem Benutzer eines Prozessmodells und einem spezialisierten EDV-Dienstleister erforderten, nunmehr beträchtliche Rationalisierungspotentiale zu erwarten sind.
Die im Rahmen der vorliegenden Erfindung vorteilhafte erreichte Integration der Einzelkomponenten "Struktur- und Visualisierungseinheit", "Umsetzungseinheit" und "Ablaufeinheit" unterstützt diese Wirkung optimal und erreicht letztlich, dass ein Benutzer von einer mit klassischer Software-Realisierung von Prozessen begleiteten, system- und programmtechnischen Komplexität vollständig unbelastet bleibt.
I271DE7
Weitere Vorteile, Merkmale und Einzelheiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsbeispiele sowie anhand der Beschreibung; diese zeigen in
Fig. 1: ein schematisches Blockschaltbild der erfindungsgemäßen Vorrichtung zur Visualisierung und Unterstützung von Geschäftsabläufen gemäß einer ersten, bevorzugten Ausführungsform,
Fig. 2: eine beispielhafte grafische Visualisierung eines Prozessablaufs, wie sie der Anordnung gem. Fig. 1 erzeugt werden kann, einer typischen Bildschirmdarstellung für einen Benutzer entspricht und den nachfolgend in der Beschreibung zu diskutierenden Ablaufcode erzeugen kann, und
Fig. 3: ein Beispiel für die Möglichkeit eines Benutzers,
die Visualisierung gemäß Fig. 2 mit Parametern
für einen gewünschten Prozess- bzw. Entscheidungsschritt zu versehen.
Die in Fig. 1 schematisch als Blockschaltbild mit den wesentlichen Funktionskomponenten gezeigte Vorrichtung besteht aus einer (oder mehreren) clientseitigen Einheiten 10 (symbolisiert durch die gestrichelte Linie), die in ansonsten bekannter Weise über eine Netzwerkanbindung, insbesondere ein öffentliches Datennetz mit Datenübertragung gemäß TCP-IP, an eine Servereinheit 20 angebunden ist.
Genauer gesagt weist die Client-Einheit 10, üblicherweise realisiert mittels eines handelsüblichen PC, eine mittels einer Struktur- und Visualisierungseinheit 12 verbundene Eingabeeinheit 14 auf (typischerweise Tastatur, Maus oder dergl. Zeigegerät) und ist weiterhin verbunden mit einer schematisch gezeigten Ausgabeeinheit 16, die üblicherweise als Monitor, Drucker oder dergl. realisiert ist. Zentrale Funktionen der Client-Einheit, eingeschlossen eine etwaige
• ·
I271DE7 - 8 -
Administration im Rahmen eines Netzwerkbetriebs mit der Servereinheit 20, werden durch eine symbolisch in der Client-Einheit 10 vorgesehene Administrationseinheit 18 übernommen und sind in ansonsten bekannter Weise realisiert.
Serverseitig ist zum einen eine Umsetzungseinheit 22 vorgesehen, die als Code-Generator wirkt und von der Struktur- und Visualisierungseinheit 12 des Clients 10 erzeugten Format- bzw. Strukturcode, im dargestellten Ausführungsbeispiel im XML-Format gebildet und in einer ersten Datenspeichereinheit 24 abgelegt, in JAVA-Quellcode konvertiert und in einer zweiten Datenspeichereinheit 26 ablegt. Eine serverseitig der Umsetzungseinheit 22 sowie der zweiten Datenspeichereinheit 26 nachgeschaltete Ablaufeinheit 28 bietet dann die Möglichkeit, den ablauffähigen Code der Umsetzungseinheit 22 auszuführen, insoweit das lokal (clientseitig) erzeugte Prozessmodell konkret operativ zu betreiben, wobei im dargestellten Ausführungsbeispiel eine Quelle 32 für sequentielle Transaktionsdaten mit der Ablaufeinheit 28 verbunden ist. Serverseitig ist noch eine Server-Administrationseinheit 30 vorgesehen, die in ansonsten bekannter Weise den Serverbetrieb steuert, Session-Management mit angeschlossenen Clients durchführt und für eine serverseitige Koordination der erfindungsgemäß integrierten Visualisierung, Umsetzung und Abarbeitung des durch einen Benutzer erstellten Ablaufmodells sorgt.
Im Zusammenhang mit einem exemplarisch visualisierten Prozessmodell der Fig. 2 und den dieser Beschreibung anliegenden Codebeispielen für den beispielhaft generierten Struktur- und Ablaufcode soll nunmehr die Funktionsweise der Einheiten gem. Fig. 1 im Detail beschrieben werden.
Dabei wird zunächst erläutert, wie ein Benutzer mit Hilfe grafischer Bedienelemente auf der Clientseite das in Fig. 2 gezeigte Modell erstellen kann, woraus dann der XML-Code in der Tabelle gemäß Anhang 1 generiert wird.
• ·» .··
I271DE7 - 9 - ·&idigr;·. &Ggr; :. i
Für das vorliegende Beispiel gemäß Fig. 2 wird angenommen, dass ein Benutzer Kundendaten auswerten möchte, die als Datei "Benchmarkl" in der Datenquelle 32 gespeichert sind. Der Benutzer möchte die Daten mittels eines Regel- bzw. Entscheidungsmodels (Regelbaums) auswerten, welches verschiedene Auswerte-, insbesondere Entscheidungsoperationen auf die Mehrzahl der in der Speichereinheit 32 gespeicherten und sequentiell zu bearbeitenden Daten vorsieht. Zu diesem Zweck erhält der Benutzer die Möglichkeit, ein grafisches Modell als Abfolge von verschiedenen, durch Grafiksymbole dargestellten Entscheidungen bzw. Regelungen zu modellieren, wobei der Benutzer hierzu von ihm gewählte (einem jeweiligen Modellierungsschritt entsprechende) Symbole auf ansonsten bekannte Weise mittels eines geeigneten Zeigeinstruments der Datenverarbeitungsvorrichtung, z.B. der Maus, an eine von ihm gewünschte Position auf einer digitalen Zeichen- bzw. Bildschirmfläche zieht und benachbarte Symbole durch Linien miteinander verbindet, so dass eine in Fig. 2 gezeigte Struktur modelliert werden kann, welche dann das gezeigte Bild auf der Ausgabeeinheit 16 erzeugt und in der im Zusammenhang mit Fig. 1 beschriebenen Weise in entsprechenden ausführbaren Code umgesetzt wird.
Genauer gesagt sieht das vorliegende Ausführungsbeispiel, wie in der Fig. 2 gezeigt, vor, dass am Anfang des Modells ein Basisschritt (sog. Wurzel des Regelbaumes) vorgesehen ist, welcher im vorliegenden Ausführungsbeispiel die Bezeichnung "Testl" erhalten hat. Mittels dieser Wurzel als Startsymbol (bzw. -knoten) des in Fig. 2 modellierten Regelbaums wird eine Verbindung hergestellt zu den in der (physischen) Speichereinheit 32 gespeicherten, mittels des Entscheidungsmodells zu bearbeitenden Daten, wobei die hier konkret zu bearbeitende sequentielle Datei den Namen "Benchmarkl" trägt.
Wie das beispielhafte Regelmodell, angeordnet und verbunden wie in Fig. 2 gezeigt, verdeutlicht, ist eine Mehrzahl von verschiedenen mit dem Basisknoten "Testl" verknüpften und
I271DE7 - 10 -
hierauf folgenden Einzelschritten bzw. -knoten möglich, die z.B. als sog. Zuweisungsschritte (auch Transitionen genannt) realisiert sind und eine Operation, z.B. Rechenoperation, auf einen von diesem Knoten bearbeiteten Wert durchführen können. Im Rahmen des vorliegenden Ausführungsbeispieles werden derartige Zuweisungsschritte (Transitionen) mit einem Parallelogramm symbolisiert, und in der Fig. 2 sind die nachfolgend noch im Detail zu erläuternden Schritte 1_1/ 1_2, 1_5 sowie l_10 entsprechende Transitionen.
Ein weiterer Typ eines Prozessschritts im Rahmen des vorliegenden Ausführungsbeispiels ist eine Entscheidung (mit einer oder mehreren Entscheidungsalternativen) , wie sie in Fig. 2 und in der dem Benutzer angebotenen grafischen Schnittstelle als Raute dargestellt ist und einen Eingangswert in Abhängigkeit von entsprechend einstellbaren Entscheidungskriterien bewertet und behandelt. Der Entscheidungsschritt 1_3 in Fig. 3 ist ein derartiges Beispiel für eine Entscheidung mit zwei möglichen Entscheidungsalternativen, die als 1_4 bzw. 1_6 symbolisiert sind.
Eine Sonderform der Entscheidung stellt das unter 1_8 gezeigte Symbol dar, nämlich eine sog. Best-Of-Entscheidung: Hier ist die Möglichkeit gegeben, aus der Gesamtheit der anliegenden Eingangsdaten "Benchmarkl" den (nach einem vorgegebenen bzw. einstellbaren Kriterium) besten Wert herauszuarbeiten bzw. zu bestimmen und dann weiteren nachfolgenden Schritten zugänglich zu machen.
In der Fig. 2 sind zum Zweck der weiteren Erläuterung die insgesamt 11 Einzelschritte entlang der Reihenfolge ihrer Bearbeitung "l_i", i = 1... 11, durchnumeriert, wobei der Ausgangsknoten (Wurzel) "Testl" auch als Schritt l_0 bezeichnet wird und davon ausgehend das Modell in der Darstellungsebene der Fig. 1 die damit verbundenen Schritte jeweils zuerst in horizontaler und daraufhin in vertikaler Richtung nacheinander ausführt bzw. bearbeitet (so dass die
I271DE7 - 11 -
Bezeichnungsreihenfolge 1_1 bis 1_11 auch der Reihenfolge der tatsächlichen Bearbeitung durch die Ablaufeinheit 28 entspricht).
Die Erzeugung des in Fig. 2 gezeigten Regelmodells (Regelbaums) für einen Benutzer wird zusätzlich dadurch erleichtert, dass ihm nicht nur grafisch-elektronisch die Möglichkeiten gegeben werden, in der gezeigten Weise Symbole anzuordnen und in einer Baumstruktur, wie gezeigt, miteinander zu verknüpfen; auch erhält der Benutzer durch eine entsprechend grafisch unterstützte Bedien- und Einstellungsschnittstelle (im Rahmen der Einheit 12) die Möglichkeit, den jeweiligen grafischen Symbolen l_0 bis 1_11 entsprechende Parameter zuzuordnen, z.B. anzugeben, nach welchem Kriterium in dem Best-Of-Schritt 1_8 nunmehr die Auswahl aus den Eingangsdaten "Benchmarkl" zu erfolgen hat. In ansonsten bekannter Weise (und unterstützt durch entsprechende Programmroutinen) ist bei der gezeigten Ausführungsform vorgesehen, dass der Benutzer durch ein Zeigeereignis (z.B. Doppelklick mit der Maus auf das entsprechende Symbol) ein zugehöriges Menü aufrufen kann, welches ihm dann die Möglichkeit zur Parametereingabe, zur Eingabe von Formeln, von Verknüpfungen, von Entscheidungsalternativen usw. anbietet.
Als konkretes Beispiel zeigt die Fig. 3 ein sog. Pop-up-Menü, welches dem Benutzer angeboten wird, sobald er mit der Maus 14 als Zeigeinstrument den Schritt 1_3 auswählt: Der Benutzer hat hier die Möglichkeit, die erste Auswahlregel entsprechend der ersten Entscheidungsalternative 1_4 einzugeben, unterstützt durch eine Auswahl der zur Verfügung stehenden Variablen (Datenfelder) der Eingangsdaten "Benchmarkl"; im Beispiel des Schrittes 1_4 wird die Entscheidung gefällt, ob ein jeweiliger ausgelesener Wert größer als das Ergebnis der Formel "100 + 50 : 1 &khgr; 3" ist, logisch-UND verknüpft mit der Bedingung, dass ein jeweiliger Datensatz aus "Benchmarkl" der "Rabattstufe = 1" zugehören muss. Wenn dies bei einem jeweiligen Datensatz der Fall
I271DE7 - 12 - ··'.. &Ggr; · .*: .'
ist, verzweigt der Entscheidungsschritt 1_4 zum nachfolgenden Zuweisungsschritt (Transition) 1_5, wobei im dargestellten Ausführungsbeispiel in 1_5 ein sog. Unterbaum (mit der Möglichkeit zur weitergehenden, differenzierteren Modellierung für diesen Entscheidungsfall) aufgerufen wird. Wie die Fig. 2 erkennen läßt, ist jedem grafischen Schrittbzw. Entscheidungssymbol ein Text- bzw. Erläuterungsfeld zuordnebar, welches den Namen des entsprechenden Schrittes bzw. dessen Beschreibung enthalten kann (z.B. zu Schritt 1_1 den Namen "Description"), sowie zum besprochenen Unterbaum-Aufruf in Schritt 1_5 den Aufruf des entsprechenden Baums "Test2" (der jedoch für die vorliegende Beschreibung nicht interessant ist).
Mit bevorzugt programmtechnischen Mitteln läßt sich somit eine grafisch orientierte, computerbasierte Entwurfsumgebung realisieren, die einem insbesondere auch im konkreten Fertigen von Programmcode ungeübten Benutzer die Möglichkeit bietet, ein (hierarchisches) Prozessmodell beliebiger Art in einer grafischen Weise zu modellieren, wie es exemplarisch in Fig. 2 dargestellt ist. Zusätzlich kann der Benutzer, ebenfalls ohne konkret in einer Programmiersprache Code entwickeln zu müssen, den jeweiligen, zunächst lediglich grafisch modellierten Schritten Bedeutungen in Form von Entscheidungskriterien, Zuordnungsregeln usw. zuordnen, so dass die Grundlage für ein nachfolgendes Bearbeiten von konkreten Eingangsdaten geschaffen ist.
Damit aus der exemplarisch in Fig. 2 gezeigten Visualisierung des beschriebenen Prozessmodells nunmehr auch eine Prozessrepräsentation entstehen kann, die der unmittelbaren elektronischen Bearbeitung zugänglich ist, ist die in Fig. 1 gezeigte Visualisierungseinheit 12 zusätzlich zum Umsetzen des in Fig. 2 gezeigten grafischen Modells in einen Code ausgebildet, der im vorliegenden Ausführungsbeispiel dem XML-Codemodell folgt. Das dem in Fig. 2 gezeigten visualisierten Modell entsprechende XML-Codelisting, abgelegt in der Datenspeichereinheit 24 gemäß Fig. 1, ist insoweit
• · ♦ ·
I271DE7 - 13 - ·&iacgr;·. &Ggr; \.:·, ·* I I; *
das unmittelbare Produkt der Visualisierungseinheit 12, wobei im weiteren lediglich exemplarisch erläutert werden soll, wie jeweilige Entscheidungsschritte gemäß Fig. 2 ihren Niederschlag in dem XML-Code in Anhang 1 zu dieser Beschreibung finden (zur Erleichterung der Lesbarkeit ist dabei der XML-Code in seinen Zeilen von 1 bis 269 durchnumeriert) :
Zunächst enthält das XML-Codelisting eine genaue Beschreibung der Feld- und Datenstrukturen der in der Einheit 32 gespeicherten Datei "Benchmarkl", deren Datensätze durch das Prozessmodell gemäß Fig. 2 zu bearbeiten sind. Die eigentliche Baumdarstellung aus Fig. 2 findet sich dann in den Zeilen 152 bis 251 des Listing in Anhang 1. So ist Prozessschritt 1_1 in XML ab Zeile 204 beschrieben; es wird angegeben, dass Schritt 1_2 der unmittelbar folgende Schritt ist (Zeile 205), und dass es sich dabei um einen Prozessschritt der Transition (Zuweisung) handelt (Zeile 207).. Konkret sieht diese Zuweisungsoperation vor, dass (in der Absicht des Zählens der Gesamtzahl von Datensätzen aus "Benchmarkl", durch den Schritt 1_1 eine Variable "Kundenanzahl" bei jedem Ausführen um 1 erhöht werden soll (Zeile 212).
Der Prozessschritt 1_1 dient als Vorbereitung für den nachfolgenden Prozessschritt 1_2 (beschrieben in XML ab Zeile 230) , wo dann das Durchschnittsguthaben von allen in der Datei "Benchmarkl" geführten Kunden durch die in Zeile 237 angegebene Formel, auf der Basis der ermittelten "Kundenanzahl" aus Schritt 1_1, berechnet wird.
Der sich anschließende Prozessschritt 1_3 sieht, wie bereits diskutiert, eine Entscheidung mit zwei Entscheidungsalternativen (Schritte 1_4 bzw. 1_5) vor: Wie bereits im Zusammenhang mit Fig. 3 erläutert, läßt sich zu Entscheidungsschritt 1_4 (beschrieben im Listing ab Zeile 184) die Entscheidungssituation unmittelbar aus Zeile 187 ablesen; ist diese Bedingung erfüllt, würde der Regelbaum ver-
I271DE7
zweigen zum nachfolgenden Schritt 1_5 (und den dort vorgesehenen Unter-Regelbaum aufrufen).
Fällt jedoch die Entscheidung in Schritt 1_4 negativ aus, findet die Entscheidung 1_6 (beschrieben ab Zeile 172) statt, die eine nochmals komplexere Entscheidungssituation modelliert (Zeile 175): Hier werden mit logischen Operatoren verschiedene Variablen bzw. Datenfelder von. "Benchmarkl" miteinander verknüpft und, falls die Entscheidung positiv ausfällt, im Aktionssymbol 1_7 eine entsprechende Aktion ausgelöst (im vorliegenden Fall, vgl. XML-Code ab Zeile 156, das Setzen eines Flags genannt "R005").
Eine besonders leistungsfähige Operation im Rahmen der vorliegenden Erfindung ist die als Schritt 1_8 bzw. 1_9 modellierbare Best-Of-Entscheidung (ab Zeile 159 des XML-Listings in Anhang 1): Von der Variablen "Guthaben" werden die höchsten (besten) 10.000 Datensätze (= Werte) ermittelt, und mit diesen Werten dann der nachfolgende Zuweisungsschritt l_10 (im vorliegenden Fall lediglich eine Zählvariable für die Trefferanzeige, XML-Listing ab Zeile 217) ausgelöst. Das Ende dieses Zweiges mit Schritt 1_11 markiert wiederum das Setzen eines Flags.
Aus dem Anhang 1 zeigt sich, dass durch erfindungsgemäße Wirkung der Einheit 12 ein für einen Benutzer einfach modellierbares und mit Kriterien bzw. Parametern versehbares Regel- bzw. Entscheidungsmodell in ein vergleichsweise komplexes, gleichwohl jedoch nunmehr einer maschinellen Weiterverarbeitung zugängliches Strukturmodell umgesetzt wurde, wobei sich im beschriebenen Ausführungsbeispiel die Struktursprache XML in besonderer Weise eignet, um einerseits die (grafischen bzw. relativen) Strukturen der einzelnen Schritte zueinander zu berücksichtigen und anderseits auch die jeweils betroffenen Parameter, Entscheidungsregeln und Kriterien aufzunehmen.
I271DE7 - 15 - * /· :.·.
Im Rahmen der vorliegenden Erfindung ist es nunmehr möglich, den in Anhang 1 gezeigten Code und mit Wirkung der erfindungsgemäßen Umsetzungseinheit 22 in einen Programm-(Quell-) Code umzusetzen, wobei dies im beschriebenen Ausführungsbeispiel in die Plattform-übergreifende Programmiersprache JAVA geschieht.
Exemplarische Beispiele des aus dem XML-Code gemäß Anhang 1 erzeugten JAVA-Codes sind in den Anhängen 2 bis 6 beigefügt und werden im Weiteren exemplarisch erläutert. Wichtig für die Umsetzung im Rahmen des vorliegenden Ausführungsbeispiels ist, dass jeder vorstehend als einzelnes grafisches Objekt modellierter (Entscheidungs-) Schritt bzw. jede Regel als eigene JAVA-Klasse Umsetzung findet, so dass insoweit, mittels geeigneter JAVA-üblicher Klassenbibliotheken, eine flexible Verwendung des im Rahmen der Erfindung erzeugbaren ausführbaren Programmcodes in verschiedenen Regelbäumen bzw. Modellierungsansätzen (auch parallel für mehrere Benutzer) erfolgen kann.
So zeigt der Anhang 2 die Umsetzung von Entscheidungsschritt 1_1 als Zuweisung (Parallelogramm in Fig. 2, XML-Code in Anhang 1 zwischen Zeile 204 und 214) in zugehörigen JAVA-Code, ebenso wie Anhang 3 die zweigliedrige Entscheidungssituation als Entscheidungsregel 1_3 mit den Entscheidungsalternativen 1_4 und 1_6 verdeutlicht.
Anhang 4 zeigt, wie der Zuweisungsschritt 1_5, aufgerufen durch positive Entscheidung in Schritt 1_4, in JAVA-Quellcode umgesetzt wird, und (vergleichsweise komplex) zeigt Anhang 5, wie das Best-Of-Entscheidungskriterium entsprechend Schritt 1_8 bzw. 1_9 in JAVA-Quellcode (zum sequentiellen Abarbeiten bzw. zum weiteren, ausführungsfertigen Kompilieren) bereitgestellt wird.
Schließlich zeigt Anhang 6 die Umsetzung von Schritt 1/7 (Aktionsschritt, nämlich Setzen eines Flags) als JAVA-Klasse .
I271DE7
Im weiteren soll unter Bezug auf die Anhänge 7 und 8 noch kurz erläutert werden, wie prinzipiell die Umsetzung von dem XML-Code (Anhang 1) in den JAVA-Quellcode erfolgt (welcher dann, vor einer endgültigen Erstellung der Klassenbibliotheken bzw. vor einer Ausführung noch compiliert wird).
Zu diesem Zweck zeigt der Anhang 7 den generischen JAVA-. Code in Form einer sog. Code-Generator-Vorlage, mit welcher die Umsetzungseinheit 22 den in Anhang 1 dargestellten XML-Code in den JAVA-Quellcode umsetzt; konkret zeigt der Auszug gemäß Anhang 7 mit einem Ausschnitt aus einer umfassenden Code-Generator-Vorlage den generischen JAVA-Code in Form von Codefragmenten, wie sie notwendig sind, um den Schritt 1_1 (JAVA-Quellcode als Endergebnis gemäß Anhang 2, XML-Ausgangscode zwischen Zeilen 204 und 216 gemäß Anhang 1) herzustellen.
So besteht der generische Code in der Code-Generator-Vorlage gemäß Anlage 7 aus einer Mehrzahl von Codefragmenten, die jeweils mit einem Kenner "%define" eingeleitet werden, wobei erste Einzelvorlage "Node" den groben Aufbau der für den Schritt 1_1 zu erstellenden JAVA-Klasse anbietet.
Dort wird dann insbesondere der Platzhalter $Execute (Zeile 19) ersetzt durch einen Codeblock, der aus den weiteren Code-Generator-Vorlagen IncHitCount (Zeile 26) , IncStat-Count (Zeile 33), AssignmentTransition (Zeile 37) sowie Proceed (Zeile 44) zusammengesetzt wird. Dabei enthält den eigentlichen Zuweisungsausdruck, nämlich Erhöhen der Variable "Kundenanzahl" um 1 (Zeile 212 des XML-Codes) die Code-Generator-Vorlage AssnigmentTransition, worin dann mittels, entsprechender Funktionalität des Code-Generators 22 der XML-Ausdruck (Kundenanzahl := Kundenanzahl +1) in den JAVA-Ausdruck _global.Kundenanzahl = (_global.Kundenanzahl + 1) umgesetzt wird (aus dem XML-Code gemäß Anhang 1 ergibt sich bereits, dass die Variable "Kundenanzahl" eine Global-
■ ·
• ·
I271DE7
variable ist (Zeilen lOlff), und dann im JAVA-Source-Code entsprechend deklariert wird.
Die zusätzlich enthaltenen Vorlagen IncHitCount sowie IncStatCount betreffen nicht unmittelbar den Zuweisungsschritt 1_1, sondern stellen vielmehr das grundsätzliche routinemäßige Inkrementieren einer statistischen bzw. die Anzahl von Zugriffen auf die Klasse zeigenden Variablen dar; diese Vorlagen sind insoweit unspezifisch und automatisch Teil jeder späteren JAVA-Klasse.
Die Vorlage "Proceed" gibt den nachfolgenden Schritt (und damit auch die nachfolgende JAVA-Klasse) an; in den Platzhalter "$Successor" wird hier dann gemäß Zeile 289 von Anhang 2 der Hinweis auf Schritt 1_2 eingebracht.
Mit den beschriebenen Platzhalterersetzungen in der Code-Generator-Vorlage gemäß Anhang 7 ergibt sich somit der konkrete JAVA-Quellcode gemäß Anhang 2, im vorliegenden Ausführungsbeispiel entsprechend Schritt 1_1. Dieser Code kann dann in eine ablauffähige Form compiliert werden.
Der Anhang 8 zeigt mit "Decisionlnput", "ConditionExclusiveFirst" sowie "ConditionExclusiveElse-Next" drei weitere typische Code-Generator-Vorlagen, die jedoch nicht für eine Zuweisungs-Operation, sondern für einen Entscheidungsschritt benötigt werden. Insbesondere eignen sich diese Code-Generator-Vorlagen, bei denen dann wie oben beschrieben die Platzhalter durch entsprechende Parameter aus dem XML-Code ersetzt werden, zur Umsetzung von Entscheidungsschritt 1_3 (dort insbesondere Zeilen 327 bis 334, 340-344), betreffend den Entscheidungsschritt der Guthabensformel (Zeile 330, 331) in JAVA-Quellecode.
Die Umsetzung läuft entsprechend mit jeweils zugehörigen Code-Generator-Vorlagen für die weiteren Entscheidungsbausteine bzw. Graphik-/XML-Elemente.
I271DE7
Da, wie vorliegend beschrieben, zudem eine lückenlose Umsetzung, von einer graphischen Modulierung bis hin zu einem compilierten JAVA-Code, stattfindet, ist zudem ausgeschlossen, dass nicht lauffähiger (bzw. nicht compilierfähiger) JAVA-Quellcode entsteht; dieser ist durch die vorliegende Erfindung in jedem Fall syntaktisch korrekt und damit lauffähig.
Da ferner, wie dargelegt, eine unmittelbare Zuordnung von JAVA-Klassen und Entscheidungsschritten erfolgt, erweist es sich auch als unschädlich, dass der XML-Code in Anhang 1 nicht in einer dem Prozessfluss geordneten Weise die Beschreibung der Einzelschritte vornimmt.
Die vorliegende Erfindung ist nicht auf die im gezeigten Ausführungsbeispiel beschriebenen Funktionen und Operationen beschränkt: So gibt es, über die in Fig. 1 gezeigte, prinzipielle Netzwerkkonfiguration hinaus, zahlreiche weitere Möglichkeiten, die erfindungsgemäßen Basiseinheiten 12, 22, 28 (Fig. 1) verteilt auf Server- und/oder Clienteinheiten, ggf. unabhängig von einer Netzanbindung, vorzusehen, um so in verschiedener Weise sich an Einsatzbedingungen anpassen zu können.
Auch ist prinzipiell die vorliegende Erfindung nicht auf die eingesetzten Beschreibungs- bzw. Programmiersprachen XML und JAVA beschränkt; im Grundsatz ist es möglich, sowohl die grafisch unterstützte Visualisierung (Fig. 2) in einer anderen, geeigneten Struktursprache vorzunehmen, als auch die weitere Codeumsetzung in eine andere, geeignete ablauffähige Sprache vorzunehmen.
Im Rahmen der vorliegenden Erfindung liegt es dabei insbesondere auch, von der zwar vorteilhaften, jedoch nicht zwingend notwendigen 1-zu-l-Zuordnung von JAVA-Klasse und Entscheidungsschritt abzuweichen und etwa eine Mehrzahl von (bevorzugt aufeinanderfolgenden bzw. benachbarten) Ent-
I271DE7
Scheidungsschritten innerhalb einer JAVA-Klasse, etwa als verschiedene Methoden, abzubilden.
Im Ergebnis eignet sich die vorliegende Erfindung in idealer Weise dazu, einem Benutzer das Modellieren selbst komplexer Prozesse anhand von Regel- und Entscheidungsbäumen zu ermöglichen und dann mit diesem Modell bereits konkrete Daten zu berechnen, ohne dass es hierfür der manuellen Code-Erstellung bedarf.
I271DE7 - 20 -
Anhang 1: Umsetzung des Prozessablaufs gem. Fig. 2 in XML-Code
1 <?xml version="].. 0" encoding="ISO-8859-l"?> 2
3 <!DOCTYPE Project SYSTEM 'incontact.dtd1> 4
5 <!&mdash;in-contact Projekt, (C) 1999,2000 Innovations GmbH&mdash;>
6 <Project>
7 <TypeDeclaration Name="BENCHMARKlDATEN">
8 <Type>
9 <RecordType>
10 <Field Name="ID">
11 <Type>
12 <TypeUse Typename="INTEGER" />
13 </Type>
14 <Expression>0</Expression>
15 </Field>
16 <Field Name="NAME">
17 <Type>
18 <TypeUse Typename="STRING" />
19 </Type>
20 <Expression>""</Expression>
21 </Field>
22 <Field Name="VERHEIRATET">
23 <Type>
24 <TypeUse Typename="BOOLEAN" />
25 </Type>
2 6 <Expression>FALSE</Expression>
27 </Field>
28 <Field Name="GUTHABEN">
29 <Type>
30 <TypeUse Typename="FLOAT" />
31 </Type>
32 <Expression>0.0</Expression>
33 </Field>
34 <Field Name="EINKOMMEN">
35 <Type>
36 <TypeUse Typename="INTEGER" />
37 </Type>
38 <Expression>0</Expression>
39 </Field>
40 <Field Name="RABATTSTUFE">
41 <Type>
42 <TypeUse Typename="INTEGER" />
43 </Type>
44 <Expression>0</Expression>
45 </Field>
46 <Field Name="GRUPPE">
47 <Type>
48 <TypeUse Typename="INTEGER" />
49 </Type>
50 <Expression>0</Expression>
51 </Field>
52 <Field Name="GEBDATUM">
53 <Type>
54 <TypeUse Typename="DATE" />
55 </Type>
56 <Expression>#1900-01-01#</Expression>
57 </Field>
58 <Field Name="LETZTERBESUCH">
59 <Type>
60 <TypeUse Typename="DATE" />
61 </Type>
62 <Expression>#1900-01-01#</Expression>
I271DE7 - 21 -
&bull; ·
&bull; ·
63 </Field>
64 </RecordType>
65 </Type>
66 </TypeDeclaration>
67 <Action Name="IC 004AA" />
68 <Action Name="R005" />
69 <Action Name="K361a" />
70 <Action Name="A361b" />
71 <Action Name="A361" />
72 <Action Name="l912" />
73 <Data>
74 <Constant>
75 <Type>
76 <RecordType>
77 <Field Name="Mehrwertsteuersat&zgr;">
78 <Type>
79 <TypeUse Typename="FLOAT" />
80 </Type>
81 <Expression>16.0</Expression>
82 </Field>
83 <Field Name="Einkommensgrenze">
84 <Type>
85 <TypeUse Typename="FLOAT" />
86 </Type>
87 <Expression>50000.0</Expression>
88 </Field>
89 </RecordType>
90 </Type>
91 </Constant>
92 <Global>
93 <Type>
94 <RecordType>
95 <FieId Name="Durchschnittsguthaben">
96 <Type>
97 <TypeUse Typename="FLOAT" />
98 </Type>
99 <Expression>0.0</Expression>
100 </Field>
101 <Field Name="Kundenanzahl">
102 <Type>
103 <TypeUse Typename="INTEGER" />
104 </Type>
105 <Expression>0</Expression>
106 </Field>
107 </RecordType>
108 </Type>
109 </Global>=
110 <Local>
111 <Type>
112 <RecordType>
113 <Field Name="Score">
114 <Type>
115 <TypeUse Typename="INTEGER" />
116 </Type>
117 <Expression>99999</Expression>
118 </Field>
119 </RecordType>
120 </Type>
121 </Local>
122 <Input>
123 <Type>
124 <TypeUse Typename="BENCHMARKlDATEN" />
125 </Type>
126 <DatasourceUse Datasource="DatabaseDatasource">
I271DE7
127 <Field Name="DatabaseProductname">
128 <Description>
129 <Alternative Locale="de">Name des Datenbankprodukts ("Oracle", "DB2", "SQLServer", etc.)</Alternative>
130 </Description>
131 <Expression>"DB2"</Expression>
132 </Field>
133 <Field Name="DatabaseServer">
134 <Expression>"dbserver"</Expression>
135 </Field>
136 <Field Name="DatabaseName">
137 <Expression>"rewe"</Expression>
138 </Field>
139 <Field Name="Username">
140 <Expression>"rewe"</Expression>
141 </Field>
142 <Field Name="Password">
143 <Expression>"rewe"</Expression>
144 </Field>
145 <Field Name="SQLQuery">
146 <Expression>"select * from Testdaten"</Expression>
147 </Field>
148 </DatasourceUse>
149 </Input>
150 <Group Pivot="GRUPPE" />
151 </Data>
152 <Rulenet Name="Testl" Root="Testl_0">
153 <Node Id="Testl_ll" Activated="TRUE">
154 <ActionUse Actionname="I912" />
155 </Node>
156 <Node Id="Testl_7" Activated="TRUE">
157 <ActionUse Actionname="R005" />
158 </Node>
159 <Node Id="Testl_8" Activated="TRUE">
160 <Successor Node="Testl_9" />
161 <Decision>
162 <BestOfDecision Order="DESC">
163 <Pivot>
164 <Expression>Guthaben</Expression>
165 </Pivot>
166 <Count>
167 <Expression>l0000</Expression>
168 </Count>
169 </BestOfDecision>
170 </Decision>
171 </Node>
172 <Node Id="Testl_6" Activated="TRUE">
173 <Successor Node="Testl_7" />
174 <Case>
175 <Expression>&lt; 1500 AND Rabattstufe In {2; 3} AND EXISTS(GroupExclusive; Einkommen < Einkommensgrenze) </Expression>
176 </Case>
177 </Node>
178 <Node Id="Testl_9" Activated="TRUE">
179 <Successor Node="Testl_10" />
180 <Case>
181 <Expression>= TRUE</Expression>
182 </Case>
183 </Node>
184 <Node Id="Testl_4" Activated="TRUE">
185 <Successor Node="Testl_5" />
186 <Case>
I271DE7
187 <Expression>> 100 + 50 / 1 * 3 AND Rabattstufe = K/Expression>
188 </Case>
189 </Node>
190 <Node Id="Testl_3" Activated="TRUE">
191 <Successor Node="Testl_4" />
192 <Successor Node="Testl_6" />
193 <Decision>
194 <ExpressionDecision>
195 <Expression>Guthaben</Expression>
196 </ExpressionDecision>
197 </Decision>
198 </Node>
199 <Node Id="Testl_0" Activated="TRUE">
200 <Successor Node="Testl_l" />
201 <Successor Node="Testl_3" />
202 <Successor Node="Testl_8" />
203 </Node>
204 <Node Id="Testl_l" Activated="TRUE">
205 <Successor Node="Testl_2" />
206 <Transition>
207 <AssignmentTransition>
208 <Target>
209 <Expression>Kundenanzahl</Expression>
210 </Target>
211 <Value>
212 <Expression>Kundenanzahl + 1</Expression>
213 </Value>
214 </AssignmentTransition>
215 </Transition>
216 </Node>
217 <Node Id="Testl_10" Activated="TRUE">
218 <Successor Node="Testl_ll" />
219 <Transition>
220 <AssignmentTransition>
221 <Target>
222 <Expression>Score</Expression>
223 </Target>
224 <Value>
225 <Expression>HITCOUNT()</Expression>
226 </Value>
227 </AssignmentTransition>
228 </Transition>
229 </Node>
230 <Node Id="Testl_2" Activated="TRUE">
231 <Transition>
232 <AssignmentTransition>
233 <Target>
234 <Expression>Durchschnittsguthaben</Expression>
235 </Target>
236 <Value>
237 <Expression>(Durchschnittsguthaben + Guthaben) / Kundenanzahl</Expression>
238 </Value>
239 </AssignmentTransition>
240 </Transition>
241 </Node>
242 <Node Id="Testl_5" Activated="TRUE">
243 <Transition>
244 <InvocationTransition>
245 <RulenetExpression>
24 6 <Expression>"Test2"</Expression>
247 </RulenetExpression>
248 </InvocationTransition>
(Kundenanzahl - 1]
I271DE7 - 24 - *··.!.*: \ ."<
249 </Transition>
250 </Node>
251 </Rulenet>
252 <Rulenet Name="Test2" Root="Test2_0">
253 <Node Id="Test2_0" Activated="TRUE">
254 <Successor Node="Test2_l" />
255 </Node>
256 <Node Id="Test2_l" Activated="TRUE">
257 <Transition>
258 <AssignmentTransition>
259 <Target>
2 60 <Expression>Score</Expression>
261 </Target>
262 <Value>
263 <Expression>Score + 1</Expression>
264 </Value>
265 </AssignmentTransition>
266 </Transition>
267 </Node>
268 </Rulenet> 269</Project>
Anhang 2: Weitere Umsetzung des Schritts 1_1 (Anhang 1) in JAVA-Code
Die Zuweisung "Kundenanzahl erhöhen":
270import de.innovations.incontact.runtime.*;
272final class Testl 1 extends Node
274 private final _Project _project;
276 Testl_l(_Project _project) { this._project = project; }
278 public final void execute(State state, Record abstractGlobal, Record abstractData)
279 {
280 final _Global _global = (_Global) abstractGlobal;
281 final _Data _data = (Data) abstractData; 282 283 hits++; 284
285 statisticHits++;
286 // Zuweisung 'Kundenanzahl := Kundenanzahl + 1'
287 _global.Kundenanzahl = (_global.Kundenanzahl + 1); 288
289 state.proceed(_project.sectionl.testl_2);
290 } 291 292}
Anhang 3: Weitere Umsetzung des Schritts 1_3 (Anhang 1) in JAVA-Code
293import de.innovations.incontact.runtime.*; 294import com.objeetspace.jgl.*;
296final class Testl_3 extends Node
298 private final _Project _project;
300 Testl 3( Project project) { this, project = project; }
301 ~ ~~ ~
302 private static final boolean _function(_Global _global, Data data, int value)
303 {
304 return ((value ==2) || (value == 3));
305 } 306
307 private static final SetUnaryPredicate _predicate_l =
308 new SetUnaryPredicate()
309 {
310 public final boolean execute(Record abstractGlobal, Record abstractData, Record genericElement)
311 {
312 _Global _global = (_Global) abstractGlobal;
313 _Data _data = (_Data) abstractData;
314 _Data element = (_Data) genericElement; 315
316 return (element._input.benchmarkldaten.EINKOMMEN < _Constant.Einkommensgrenze);
317 - }
318 }; 319
320 public final void execute(State state, Record abstractGlobal, Record abstractData)
321 {
322 final _Global _global = (_Global) abstractGlobal;
323 final _Data _data = (_Data) abstractData; 324
325 hits++;
327 // Ausdruck 'Guthaben' 32 8 final double _input =
_data._input.benchmarkldaten.GUTHABEN; 329
330 // Ausdruck '> 100 + 50 / 1 * 3 AND Rabattstufe = 1'
331 if (((_input > (100 + (( ((double) 50) /1) * 3))) && ( data, input.benchmarkldaten.RABATTSTUFE == 1)))
332 {
333 state.proceed(_project.sectionl.testl 4);
334 }
335 // Ausdruck '< 1500 AND Rabattstufe In {2; 3} AND EXISTS(GroupExclusive; Einkommen < Einkommensgrenze)1
336 else if ((((_input < 1500) && _function(_global, _data, _data._input.benchmarkldaten.RABATTSTUFE)) &&
_project.GroupExclusive.exists(GenericSet.getSetPredicate(_gl obal, _data, _predicate_l))))
337 {
338 state.proceed(_project.sectionl.testl 6);
339 }
340 else
341 {
342 statisticHits++;
343 }
344 } 345}
I271DE7 - 26 - * t : ·.:. ·: :'.··.': :: &idigr;
Anhang 4: Weitere Umsetzung des Schritts 1_5 (Anhang 1) in JAVA-Code
346import de.innovations.incontact.runtime.*;
348final class Testl_5 extends Node
350 private final _Project _project;
352 Testl 5( Project project) { this, project = project; }
353 ~ ~ ~
354 public final void execute(State state, Record abstractGlobal, Record abstractData)
355 {
356 final _Global _global = (_Global) abstractGlobal;
357 final _Data data = (Data) abstractData; 358 359 hits++; 360
361 statisticHits++;
362 // Regelnetzaufruf "Test2" 363
364 Node root = Project . get RuI enet Root (_project.rulenetRoots, "Test2"); 365
366 final State substate = new State ( global, data); 367
368 substate.proceed(root);
369 substate.run();
370 } 371}
Anhang 5: Weitere Umsetzung des Schritts 1_8 (Anhang 1) in JAVA-Code
372import de.innovations.incontact.runtime.*;
374import java.util.Enumeration; 375import com.objectspace.jgl.*; 37 6import de.innovations.util.Log;
379final class Testl 8 extends BestOf
381 private final Project _project;
383 Testl_8(_Project _project) { this, project = project; }
385 private static final class Pair
386 {
387 double pivot;
388 Data _data;
389 } 390
391 private final PriorityQueue elements = new PriorityQueue(
392 new BinaryPredicate()
393 {
394 public boolean execute(Object first, Object second)
395 {
396 return (((Pair) first).pivot > ((Pair) second) .pivot);
397 }
I271DE7
398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416
private boolean isRegistered = false; private boolean isFinished = false;
private double shortcutPivot = Double.NEGATIVE INFINITY;
public final void finish(Record abstractGIobal) // Log.debug("BestOf-Finish " + this); final _Global _global = (_Global) abstractGIobal; isFinished = true;
// Es wird eine Liste erzeugt, die die
// Elemente in umgekehrter BestOf-Reihenfolge speichert (bestes vorne)
417 SList reverse = new SListO;
418 while (!elements.isEmpty())
419 {
_Data hit = ((Pair) elements.pop())._data;
421 reverse.pushFront(hit);
422 } 423
for (final Enumeration enum = reverse.elements(); enum.hasMoreElements(); )
425 {
_Data hit = (_Data) enum.nextElement(); 427
428 429 430 431 432 433
eval(_global, hit, true);
elements.clear
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
_Data _data, boofinal State state = new State ( global, data);
private final void eval(_Global _global, lean input)
// Ausdruck '= TRUE' if ((_input == true))
state.proceed( project.sectionl.testl 9); }
else
statisticHits++; }
state.run();
// Datensatz abgeschlossen? Ja, dann Aktionen auslösen if (--_data.pendingCount == 0)
project.finishData( global, data);
public final void execute(State state, Record abstractGIobal, Record abstractData)
{
&bull; ·
&bull; ·
I271DE7 - 28 -
458 final _Global _global = (_Global) abstractGlobal;
459 final _Data _data = (_Data) abstractData; 460
461 hits++; 462
463 if (!isRegistered)
464 {
465 // Log.debug("BestOf-Register " + this);
466 _project.bestOfFinishs.add(this) ;
467 isRegistered = true;
468 } 469
470 if ( ÜsFinished)
471 {
472 _data.pendingCount++; 473 474 final double pivot =
_data._input.benchmarkldaten.GUTHABEN; 475"
476 if ( (pivot < shortcutPivot))
477 {
478 eval(_global, _data, false);
479 }
480 eise
481 {
482 final Pair pair = new Pair();
483 pair._data = _data;
484 pair.pivot = pivot; 485
486 elements.push(pair) ;
488 if (elements.size() > 10000)
489 {
490 Pair miss = (Pair) elements.pop(); 491
492 shortcutPivot = miss.pivot;
494 eval(_global, miss._data, false);
495 }
496 }
497 }
498 else
499 {
500 // BestOf-Knoten bereits abgeschlossen, daher Warnung ausgeben
501 // und Datensatz mit FALSE evaluieren. 502
503 Log.warning("BestOf-Knoten wurde bereits abgearbeitet"
504 + "; Datensatz fällt nicht in die Treffermenge; Datensatz: "
505 + _data._input); 506
507 eval(_global, _data, false);
508 }
509 } 510} 511
I271DE7 - 29 - .·:.:&diams;·: :.
Anhang 6: Weitere Umsetzung des Schritts 1_7 (Anhang 1) in JAVA-Code
2 import de.innovations.incontact.runtime.*;
4 final class Testl_7 extends Node
6 private final _Project _project; 7
8 Testl_7(_Project _project) { this._project = _project; } 9
10 public final void execute(State state, Record abstractGlobal, Record abstractData)
11 {
12 final _Global _global = (_Global) abstractGlobal;
13 final _Data _data = (_Data) abstractData; 14 15 hits++; 16
17 statisticHits++;
18 _data._action.R005 = true;
19 }
Anhang 7: Beispielhafte generische Codevorlagen zum Umsetzen von XML in JAVA-Quellcode (am Beispiel von Schritt 1_1)
1 %define Node
2 $Imports 3
4 final class $Name extends $BaseClass
5 { 6
7 private final _Project _project;
9 $Name(_Project _project) { this._project = _project;
12 $Content
14 public final void execute(State state, Record abstractGlobal, Record abstractData)
15 {
16 final _Global _global = (_Global) abstractGlobal;
17 final _Data _data = (_Data) abstractData; 18 19 $Execute
21 }
23 }
24 %end 25
26 %define IncHitCount
27 hits++; 28
30 %end
32 %define IncStatCount
33 statisticHits++;
I271DE7 - 30 -
35 %end
37 %define AssignmentTransition
38 // Zuweisung ^Comment1
39 $Expression; 40
42 %end
44 %define Proceed
45 state.proceed($Successor) ; 46 47 %end
Anhang 8: Beispiele für weitere generische Codevorlagen zum Umsetzen von XML in JAVA-Quellcode (am Beispiel von Teilen des Entscheidungsschrittes 1_3)
43 %define Decisionlnput
44 // Ausdruck '$CommentExpression'
45 final $Type _input = $Expression; 46
48 %end
50 %define ConditionExclusiveFirst
52 // Ausdruck '$CommentExpression'
53 if ($Expression)
54 {
55 $Proceed
56 } 57 58 %end
60 %define ConditionExclusiveElseNext
62 eise
63 {
64 $Proceed
65 } 66 67 %end

Claims (12)

1. Vorrichtung zur Visualisierung und Unterstützung von Geschäftsabläufen mittels einer elektronischen Datenverarbeitungsvorrichtung mit
einer mit der Datenverarbeitungsvorrichtung verbundenen Eingabe- und Ausgabeeinheit (14), die zum Zusammenwirken mit einer Struktur- und Visualisierungseinheit (12) der Datenverarbeitungsvorrichtung dergestalt ausgebildet ist, dass mittels der Ein- und Ausgabeeinheit einzelnen Prozessschritten eines Prozessablaufs, insbesondere einzelnen Regel- und/oder Entscheidungsschritten, zugeordnete vorbestimmte grafische Symbole in einer dem Prozessablauf entsprechenden Abfolge zueinander auf einer zweidimensionalen Darstellungsebene (16) angeordnet und miteinander verbunden werden können sowie jeweiligen Prozessschritten zugehörige Prozessschrittparameter zugeordnet werden können,
wobei die Struktur- und Visualisierungseinheit einen in der Darstellungsebene mit den Symbolen modellierten Prozessablauf in einen entsprechenden Format- oder Strukturcode umsetzt, in einer ersten elektronischen Datenspeichereinheit (24) ablegt und zum Aufrufen und/oder Ändern durch einen Benutzer mittels der Ein- und Ausgabeeinheit bereitstellt,
dadurch gekennzeichnet, dass
der Struktur- und Visualisierungseinheit (12) eine Umsetzungseinheit (22) nachgeschaltet ist, die so ausgebildet ist, dass der in der ersten elektronischen Datenspeichereinheit gespeicherte Format- und Strukturcode in einen mittels einer Ablaufeinheit (28) der Datenverarbeitungsvorrichtung lauffähigen sowie betriebssystemunabhängigen und/oder betriebssystemübergreifenden Ablaufcode umgesetzt wird,
wobei der in einer zweiten elektronischen Datenspeichereinheit (26) gespeicherte Ablaufcode das bevorzugt sequentielle, satzbezogene Bearbeiten von Eingangsdaten entsprechend dem Prozessablauf und das Ausgeben von Ausgangsdaten des Prozessablaufs über die Ein- und Ausgabeeinheit ermöglicht.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Format- und Strukturcode ein dem XML (Extended Markup Language)-Standard folgender Code ist.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Ablaufcode ein nach dem JAVA- Programmstandard gebildeter Quellcode oder kompilierter Code ist.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass im Ablaufcode ein Regel- und/oder Entscheidungsschritt als Prozessschritt als eine JAVA-Klasse realisiert ist, oder eine Mehrzahl bevorzugt aufeinanderfolgender Regel- und/oder Entscheidungsschritte als Methoden innerhalb einer JAVA-Klasse realisiert sind.
5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Prozessschritte einen möglichen Regel- und/oder Entscheidungsschritt aufweisen, der aus vorbestimmten Eingangsdaten einen entsprechend einem vorgegebenen Parameter maximalen Wert ermittelt.
6. Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Struktur- und Visualisierungseinheit (12), die Umsetzungseinheit (22) sowie die Ablaufeinheit (28) innerhalb eines Computernetzes verteilt vorgesehen sind, wobei bevorzugt die Umsetzungseinheit und/oder die Ablaufeinheit in einer Servereinheit (20) des Computernetzes angeordnet sind.
7. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, dass die Struktur- und Visualisierungseinheit in einer Client-Einheit (10) des Computernetzes vorgesehen ist.
8. Vorrichtung nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass die Ablaufeinheit in einer bevorzugt portabel und zeitweise netzunabhängig betreibbaren Client-Einheit des Computernetzes vorgesehen ist.
9. Vorrichtung nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass das Computernetz als mittels des TCP-IP-Protokoll kommunizierendes elektronisches Datenübertragungsnetz, insbesondere das Internet, realisiert ist.
10. Vorrichtung nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, dass das Computernetz das gleichzeitige Zugreifen einer Mehrzahl von Client-Einheiten auf eine die Ablaufeinheit und/oder Umsetzungseinheit aufweisende Servereinheit vorsieht.
11. Vorrichtung nach einem der Ansprüche 1 bis 10, gekennzeichnet durch eine Makro-Einheit der elektronischen Datenverarbeitungsvorrichtung, die so ausgebildet ist, dass ein mittels der Struktur- und Visualisierungseinheit modellierbarer und visualisierbarer Prozessablauf zu einem in einem anderen Prozessablauf, vorzugsweise mittels eines einzelnen grafischen Symbols, verwendbaren, mittels Eingabe- und Ausgabeparametern ansprechbaren Regel- und/oder Entscheidungsschritt umsetzbar ist.
12. Vorrichtung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die Datenverarbeitungsvorrichtung eine Meta-Einheit aufweist, die zum Steuern und/oder Koordinieren einer Mehrzahl von mittels der Struktur- und Visualisierungseinheit modellierbaren und darstellbaren Prozessabläufen in einer vorbestimmten Abfolge und/oder abhängig von einem übergeordneten Prozessmodell, ausgebildet ist.
DE20014430U 2000-08-18 2000-08-18 Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen Expired - Lifetime DE20014430U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE20014430U DE20014430U1 (de) 2000-08-18 2000-08-18 Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE20014430U DE20014430U1 (de) 2000-08-18 2000-08-18 Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen

Publications (1)

Publication Number Publication Date
DE20014430U1 true DE20014430U1 (de) 2000-11-30

Family

ID=7945450

Family Applications (1)

Application Number Title Priority Date Filing Date
DE20014430U Expired - Lifetime DE20014430U1 (de) 2000-08-18 2000-08-18 Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen

Country Status (1)

Country Link
DE (1) DE20014430U1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007536A1 (de) * 2007-02-15 2008-08-21 Siemens Ag Computersystem zum Erstellen einer funktionsbezogenen Dokumentation einer Anlage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007536A1 (de) * 2007-02-15 2008-08-21 Siemens Ag Computersystem zum Erstellen einer funktionsbezogenen Dokumentation einer Anlage

Similar Documents

Publication Publication Date Title
DE112005001031B4 (de) Grafisches Bildschirmkonfigurationsgerüst für vereinheitlichte Prozesssteuerungssystemoberfläche
DE19781804B4 (de) Vorrichtung zur Simulation einer Echtzeit-Prozesssteuerung
DE69327318T2 (de) Unterstützung für systementwicklung.
DE69410753T2 (de) Vorrichtung und Verfahren zur Analyse eines Verarbeitungsystems
DE10206902A1 (de) Engineeringverfahren und Engineeringsystem für industrielle Automatisierungssysteme
EP3049920A1 (de) Verfahren und einrichtung zur automatisierten erzeugung und bereitstellung wenigstens einer softwareanwendung
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
DE102004043788A1 (de) Programm Generator
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE102007001773A1 (de) Vorrichtung zum automatisierten Erzeugen von Programmcode
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
EP2171582B1 (de) Fernbedienung eines browser-programms
DE20014430U1 (de) Vorrichtung zur Visualisierung und Unterstützung von Prozessabläufen
EP1128600A1 (de) Verfahren zum Erstellen eines Kommunikationsablaufs zwischen mindestens zwei Instanzen und Protokolltester hierfür
DE19914819B4 (de) Verfahren zur Unterstützung von Entwicklungprozessen
EP3355186A1 (de) Erzeugung und ausführung von software-modulen
DE10033812A1 (de) Verfahren zum Erzeugen von Informationsmodellen
EP1343078B1 (de) System zur Modellierung und Generierung von Softwaregenerierungssystemen
EP3432139B1 (de) Computerimplementiertes verfahren zum generieren von computerprogrammcode
DE102011055905A1 (de) Verfahren zum Testen einer Software bzw. Softwaretestverfahren, Programmprodukt und Datenverarbeitungsanlage zur Ausführung des Verfahrens
WO1995002863A1 (de) Verfahren zum test eines objektorientierten programms
DE10065323C2 (de) Verfahren zur Steuerung der Anordnung von graphischen Elementen
Ertli On the impact of automatic bookmarks for prediting navigation cost through sourcecode
DE10109876B4 (de) Verfahren und Einrichtung zum Datenmanagement
DE19957883A1 (de) Verfahren zur Erzeugung grafischer Programmoberflächen

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20010104

R150 Utility model maintained after payment of first maintenance fee after three years

Effective date: 20030912

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017600000

Ipc: G06Q0050000000

R151 Utility model maintained after payment of second maintenance fee after six years

Effective date: 20060920

R152 Utility model maintained after payment of third maintenance fee after eight years

Effective date: 20081028

R071 Expiry of right