DE60029349T2 - Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen - Google Patents

Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen Download PDF

Info

Publication number
DE60029349T2
DE60029349T2 DE60029349T DE60029349T DE60029349T2 DE 60029349 T2 DE60029349 T2 DE 60029349T2 DE 60029349 T DE60029349 T DE 60029349T DE 60029349 T DE60029349 T DE 60029349T DE 60029349 T2 DE60029349 T2 DE 60029349T2
Authority
DE
Germany
Prior art keywords
data
user
component
task
client
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
DE60029349T
Other languages
English (en)
Other versions
DE60029349D1 (de
Inventor
V. George Bethlehem GUYAN
H. Robert Minneapolis PISH
Carles Chicago MUNTADA
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.)
Accenture LLP
Original Assignee
Accenture LLP
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23179936&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60029349(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Accenture LLP filed Critical Accenture LLP
Publication of DE60029349D1 publication Critical patent/DE60029349D1/de
Application granted granted Critical
Publication of DE60029349T2 publication Critical patent/DE60029349T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Betreiben von komponentenbasierter Software, die zum Auswählen von Tasks bzw. Aufgaben in der Lage ist. Insbesondere bezieht sie sich auf eine Aufgabenverwaltung zum Handhaben einer Aufgabe während einer Versicherungsanspruchsverarbeitung unter Nutzung eines Computersystems.
  • HINTERGRUND DER ERFINDUNG
  • Computer sind im Leben heutzutage eine Notwendigkeit geworden. Sie treten weltweit in fast jedem Büro und Haushalt auf. Eine repräsentative Hardwareumgebung ist in einer 1 gemäß dem Stand der Technik dargestellt, die einen typischen Hardwareaufbau einer Workstation mit einer Zentraleinheit 110 wie beispielsweise einem Mikroprozessor und einer Anzahl von über einen Systembus 112 gegenseitig verbundenen anderen Einheiten veranschaulicht. Die in der 1 gezeigte Workstation weist einen Schreib-Lese-Speicher mit wahlfreiem Zugriff (RAM) 114, einen Nur-Lese-Speicher (ROM) 116, einen E/A-Adapter 118 zum Verbinden von Peripherievorrichtungen wie beispielsweise Plattenspeichereinheiten 120 mit dem Bus 112, einen Benutzerschnittstellenadapter 122 zum Verbinden einer Tastatur 124, einer Maus 126, eines Lautsprechers 128, eines Mikrophons 132 und/oder anderer Benutzerschnittstellenvorrichtungen wie beispielsweise eines (nicht gezeigten) Berührungsbildschirms mit dem Bus 112, einen Kommunikationsadapter 134 zum Verbinden der Workstation mit einem Kommunikationsnetz (zum Beispiel einem Datenverarbeitungsnetz) und einen Anzeigenadapter 136 zum Verbinden des Bus 112 mit einer Anzeigevorrichtung 138 auf. Die Workstation hat typischerweise darauf resident ein Betriebssystem wie beispielsweise das Betriebssystem (OS) Microsoft Windows NT oder Windows/95, das Betriebssystem IBM OS/2, das MAC OS oder das Betriebssystem UNIX.
  • Eine objektorientierte Programmierung (OOP) ist zunehmend zum Entwickeln von komplexen Anwendungen verwendet worden. Während die OOP sich zu der Hauptströmung des Softwareentwurfs und der Softwareentwicklung hin bewegt, erfordern verschiedene Softwarelösungen eine Anpassung, um die Vorteile der OOP auszunutzen. Es besteht ein Bedarf daran, diese Prinzipien der OOP auf eine Mitteilungsübermittlungsschnittstelle eines elektronischen Mitteilungsübermittlungssystems derart anzuwenden, dass ein Satz von OOP-Klassen und -Objekten für die Mitteilungsübermittlungsschnittstelle bereitgestellt werden kann.
  • Die OOP ist ein Prozess des Entwickelns von Computersoftware unter Verwendung von Objekten einschließlich der Schritte des Analysierens des Problems, Entwerfens des Systems und Aufbauens des Programms. Ein Objekt ist ein Softwarepaket, das sowohl Daten als auch eine Sammlung von zugehörigen Strukturen und Prozeduren enthält. Da es sowohl Daten als auch eine Sammlung von Strukturen und Prozeduren enthält, kann man es sich als eine autarke Komponente vorstellen, die keine anderen zusätzlichen Strukturen, Prozeduren oder Daten zum Durchführen ihrer spezifischen Aufgabe benötigt. Die OOP betrachtet daher ein Computerprogramm als eine Sammlung von als Objekte bezeichneten, in hohem Maße autonomen Komponenten, von denen jede für eine spezifische Aufgabe verantwortlich ist. Dieses Konzept des Packens von Daten, Strukturen und Prozeduren zusammen in eine Komponente oder ein Modul wird als Einkapselung bezeichnet.
  • Im Allgemeinen sind OOP-Komponenten wieder verwendbare Softwaremodule, die eine Schnittstelle, die einem Objektmodell entspricht, bieten und auf die während der Laufzeit durch eine Komponentenintegrationsarchitektur zugegriffen wird. Eine Komponentenintegrationsarchitektur ist ein Satz von Architekturmechanismen, die es Softwaremodulen in verschiedenen Prozessräumen ermöglichen, Fähigkeiten oder Funktionen jedes anderen zu nutzen. Dies wird im Allgemeinen getan, indem ein gemeinsames Komponentenobjektmodell angenommen wird, auf dem die Architektur aufzubauen ist. Es ist lohnend, an diesem Punkt zwischen einem Objekt und einer Klasse von Objekten zu unterscheiden. Ein Objekt ist ein einzelnes Beispiel für die Klasse von Objekten, die häufig einfach als eine Klasse bezeichnet wird. Eine Klasse von Objekten kann als ein Plan, aus dem viele Objekte erzeugt werden können, betrachtet werden.
  • Die OOP ermöglicht es dem Programmierer, ein Objekt zu erzeugen, das ein Teil eines anderen Objekts ist. Zum Beispiel soll ein einen Kolbenmotor darstellendes Objekt eine Zusammensetzungsbeziehung mit dem einen Kolben darstellenden Objekt haben. In der Realität umfasst ein Kolbenmotor einen Kolben, Ventile und viele andere Komponenten; die Tatsache, dass ein Kolben ein Element eines Kolbenmotors ist, kann in der OOP durch zwei Objekte logisch und semantisch dargestellt werden.
  • Die OOP ermöglicht auch eine Erzeugung eines Objekts, das "von" einem anderen Objekt "abhängt". Wenn zwei Objekte vorhanden sind, wobei eines einen Kolbenmotor darstellt und das andere einen Kolbenmotor, bei dem der Kolben aus Keramik ist, darstellt, dann ist die Beziehung zwischen den zwei Objekten nicht die der Zusammensetzung. Ein Keramikkolbenmotor bildet keinen Kolbenmotor. Vielmehr ist er lediglich eine Art von Kolbenmotor, die eine Beschränkung mehr als der Kolbenmotor hat; sein Kolben ist aus Keramik. In diesem Fall wird das den Keramikkolbenmotor darstellende Objekt als ein abgeleitetes Objekt bezeichnet, und es erbt alle die Aspekte des den Kolbenmotor darstellenden Objekts und fügt eine weitere Beschränkung oder ein weiteres Detail zu ihm hinzu. Das den Keramikkolbenmotor darstellende Objekt "hängt von" dem den Kolbenmotor darstellenden Objekt "ab". Die Beziehung zwischen diesen Objekten wird als Vererbung bezeichnet.
  • Wenn das Objekt oder die Klasse, das oder die den Keramikkolbenmotor darstellt, alle die Aspekte der den Kolbenmotor darstellenden Objekte erbt, erbt es die in der Kolbenmotorklasse definierten thermischen Kennwerte eines Standardkolbens. Das Keramikkolbenmotorobjekt überschreibt diese jedoch mit keramikspezifischen thermischen Kennwerten, die typischerweise von den mit einem Metallkolben verbundenen thermischen Kennwerten verschieden sind. Es springt über das Original und verwendet sich auf Keramikkolben beziehende neue Funktionen. Verschiedene Arten von Kolbenmotoren haben verschiedene Kennwerte, aber sie können die gleichen mit ihnen verbundenen zugrunde liegenden Funktionen haben (zum Beispiel wie viele Kolben in dem Motor, Zündsequenzen, Schmierung usw.). Zum Zugreifen auf jede von diesen Funktionen in einem beliebigen Kolbenmotorobjekt würde ein Programmierer die gleichen Funktionen mit den gleichen Namen benennen, aber jeder Typ von Kolbenmotor kann verschiedene/übergehende Realisierungen von Funktionen hinter dem gleichen Namen haben. Diese Fähigkeit zum Verstecken von verschiedenen Realisierungen einer Funktion hinter dem gleichen Namen wird als Polymorphismus bezeichnet, und sie vereinfacht eine Kommunikation zwischen Objekten sehr.
  • Mit den Konzepten der Zusammensetzungsbeziehung, der Einkapselung, der Vererbung und des Polymorphismus kann ein Objekt so ziemlich alles in der realen Welt darstellen. Faktisch ist die logische Wahrnehmung der Realität die einzige Grenze bei einem Bestimmen der Arten von Dingen, die bei objektorientierter Software Objekte werden können. Einige typische Kategorien stellen sich dar wie folgt:
    • • Objekte können physische Objekte wie beispielsweise Automobile in einer Verkehrsflusssimulation, elektrische Komponenten in einem Schaltungsentwurfsprogramm, Länder in einem Volkswirtschaftsmodell oder Flugzeuge in einem Luftverkehrssteuerungssystem darstellen.
    • • Objekte können Elemente der Computer-Benutzer-Umgebung wie beispielsweise Fenster, Menüs oder graphische Objekte darstellen.
    • • Ein Objekt kann ein Inventar wie beispielsweise eine Personaldatei oder eine Tabelle der Breiten und Längen von Städten darstellen.
    • • Ein Objekt kann benutzerdefinierte Datentypen wie beispielsweise Zeit, Winkel und komplexe Zahlen oder Punkte auf der Ebene darstellen.
  • Mit dieser enormen Fähigkeit eines Objekts zum Darstellen so ziemlich jeder logisch trennbaren Dinge ermöglicht es die OOP dem Softwareentwickler, ein Computerprogramm zu entwerfen und realisieren, das ein Modell von einigen Aspekten der Realität ist, ob die Realität eine physische Einheit, ein Prozess, ein System oder eine Zusammensetzung von Dingen ist. Da das Objekt alles darstellen kann, kann der Softwareentwickler ein Objekt erzeugen, das in der Zukunft in einem größeren Softwareprojekt als eine Komponente verwendet werden kann.
  • Wenn 90% eines neuen OOP-Softwareprogramms aus geprüften, vorhandenen Komponenten bestehen, die aus vorher vorhandenen wieder verwendbaren Objekten ausgebildet werden, dann müssen nur die übrig bleibenden 10% des neuen Softwareprojekts von Grund auf geschrieben und getestet werden. Da 90% bereits aus einem Inventar von eingehend getesteten wieder verwendbaren Objekten kamen, beträgt der potentielle Bereich, in dem ein Fehler seinen Ursprung haben könnte, 10% des Programms. Folglich ermöglicht es die OOP Softwareentwicklern, Objekte aus anderen, vorher aufgebauten Objekten aufzubauen.
  • Dieser Prozess ähnelt komplexen Maschinen, die aus Baugruppen und Unterbaugruppen aufgebaut werden, eng. OOP-Technologie bildet daher eine Softwaretechnik dahingehend, dass Software aus vorhandenen Komponenten, die als Objekte für den Entwickler verfügbar sind, aufgebaut wird, mehr wie eine Hardwaretechnik aus. All dies läuft auf eine verbesserte Qualität der Software sowie eine erhöhte Geschwindigkeit ihrer Entwicklung hinaus.
  • Die WO 91/08453 A beschreibt ein Computersystem für eine Programmcodeentwicklungsumgebung. Das System empfängt eine in einem Datenarchiv bzw. einer Datenablage gespeicherte höhere Regelsprachenprogrammiersprache zusammen mit in einer zentralen Ablage gespeicherten Modellierungsdaten. Das System gibt die gespeicherten Daten und die gespeicherte Regelsprache in eine Systemerzeugungseinheit zum Erzeugen eines natürlichen Programmquellcodes in einer durch verschiedene Hardwareeinheiten unterstützten Sprache ein und assembliert und kompiliert daraufhin den Code. Das System weist Entwicklungswerkbankmodule auf, um es dem Programmierer zu ermöglichen, eine Einheit und Beziehungen zu bestimmen sowie Regeln, Komponenten, Ansichten, gespeicherte und Fensterfelder einzugeben, die in einer Datenablage gespeichert sind und in das endgültige ausführbare Programm integriert werden.
  • POTEL M: "MVP: Model-View-Presenter – The Taligent Programming Model for C++ and Java" Taligent Inc. 1996 beschreibt ein offenes Klassenprogrammiermodell für objektorientierte Rahmen, das eine Programmierung in zwei grundlegenden Konzepten begrifflich erfasst: Datenverwaltung und Benutzerschnittstelle. Die Datenverwaltung schließt ein Modellieren von Datenübersichten, ein Auswählen von Datenuntermengen und ein Identifizieren von Operationen, die bei den Daten durchgeführt werden können, ein. Die Benutzerschnittstelle schließt ein Betrachten der Daten, benutzereingeleitete Aktionen, die auf die Daten einwirken, und ein Darstellen der auf die Daten abgebildeten Interaktionen ein. Es wird ferner beschrieben, wie diese Aktionen bei der Datenverwaltung und der Benutzerschnittstelle abhängig von der in Client-Server-Umgebungen bestimmten Aufteilung verschieden liegen können.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Ziel der vorliegenden Erfindung besteht darin, eine Vorrichtung zum Betreiben von komponentenbasierter Software, die zum Auswählen von Aufgaben in der Lage ist, bereitzustellen, was einen aufwendigen, zeitraubenden Prozess, bevor ein Code geschrieben wird, vermeidet.
  • Gemäß der Erfindung wird dieses Ziel durch eine Vorrichtung mit den Merkmalen des Patentanspruchs 1 erreicht.
  • Vorteilhafte weitere Entwicklungen sind in den abhängigen Patenansprüchen definiert.
  • Gemäß der Erfindung weist die Vorrichtung ein Computerprogramm zum Betreiben von komponentenbasierter Software, die zum Handhaben von versicherungsbezogenen Aufgaben in der Lage ist, auf. Das Programm weist eine Datenkomponente, die Daten unter Nutzung einer Vielzahl von Funktionen speichert, wiedergewinnt und manipuliert, auf. Ferner ist eine Clientkomponente, die einen Clientkomponentenadapter, der Daten zu/von der Datenkomponente sendet und empfängt, aufweist, bereitgestellt. Die Clientkomponente weist auch ein Geschäftsobjekt, das als ein Daten-Cache dient und eine Logik zum Manipulieren der Daten aufweist, auf. Es ist auch eine Benutzerschnittstellensteuerungseinrichtung bzw. Benutzerschnittstellensteuerungseinheit enthalten, die dazu eingerichtet ist, durch einen Benutzer erzeugte Ereignisse unter Nutzung des Geschäftsobjekts zum Speichern von Daten im Cache und des Clientkomponentenadapters zum letztendlichen Persistentmachen von Daten in einer Datenablage zu handhaben. In Verwendung ermöglicht es die Clientkomponente einem Benutzer, Aufgaben zu definieren, die bei ihrem Abschluss ein versicherungsbezogenes Ziel erreichen. Darüber hinaus ist der Benutzer dazu in der Lage, Regeln einzugeben, die vorschreiben, welche Aufgaben basierend auf einem Satz von vorbestimmten Ereignissen ausgewählt werden sollten. Daraufhin werden Ereignisse aus einer beliebigen Quelle wie beispielsweise einer gemeinsamen Ereigniswarteschlange empfangen. Schließlich werden basierend auf den empfangenen Ereignissen Aufgaben ausgewählt und ausgegeben.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorhergehenden Ziele sowie Ausgestaltungen und Vorteile werden anhand der folgenden ausführlichen Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung unter Bezugnahme auf die Zeichnungen besser verstanden, in denen:
  • 1 gemäß dem Stand der Technik ein schematisches Diagramm der vorliegenden Erfindung zeigt; und
  • 2A ein Blockschaltbild eines Ausführungsbeispiels der vorliegenden Erfindung zeigt.
  • 2B ein Flussdiagramm zeigt, das darstellt, wie Komponenten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung allgemein arbeiten.
  • 2C ein Flussdiagramm zeigt, das darstellt, wie die UI-Steuerungseinrichtung bzw. UI-Steuerungseinheit gemäß einem Ausführungsbeispiel der vorliegenden Erfindung arbeitet.
  • 2D ein Flussdiagramm zeigt, das die Interaktionen zwischen dem CCA, der CCI und der Serverkomponente gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt.
  • 3 den Lebenszyklus einer typischen Benutzerschnittstelle und die Standardverfahren, die zu dem Fensterverarbeitungsrahmen gehören, zeigt.
  • 4 eine Veranschaulichung zeigt, die darstellt, wie verschiedene Sprachen neu gestrichen (repainted) und neu kompiliert werden.
  • 5 ein Blockschaltbild eines Architekturobjekts zeigt.
  • 6 eine Veranschaulichung zeigt, die das physische Layout von CodierungDecodierung-Tabellen bzw. CodeDecode-Tabellen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt.
  • 7 ein Logikdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • 8 ein Blockschaltbild des Sicherheitsrahmens und seiner Komponenten zeigt.
  • 9 eine Veranschaulichung zeigt, die die Beziehungen zwischen dem Sicherheitselement und anderen Elementen darstellt.
  • 10 eine Veranschaulichung der Verhandlungskomponente eines Ausführungsbeispiels der vorliegenden Erfindung zeigt;
  • 11 ein Flussdiagramm der durch die Organisationskomponente eines Ausführungsbeispiels der vorliegenden Erfindung ausgeführten Operationen zeigt;
  • 12 eine Veranschaulichung der Teilnehmerkomponente eines Ausführungsbeispiels der vorliegenden Erfindung zeigt;
  • 13 ein Flussdiagramm der durch die Aufgabenassistentenkomponente eines Ausführungsbeispiels der vorliegenden Erfindung ausgeführten Operationen zeigt;
  • 14 eine Veranschaulichung der Ereignisverarbeitungseinheit zusammen mit anderen Komponenten des Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt; und
  • 15 eine Veranschaulichung der Aufgabeneinheit gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • OFFENBARUNG DER ERFINDUNG
  • Programmiersprachen beginnen, die OOP-Prinzipien wie beispielsweise Verkapselung, Vererbung, Polymorphismus und Zusammensetzungsbeziehung voll zu unterstützen. Mit dem Erscheinen der Sprache C++ haben viele kommerzielle Softwareentwickler die OOP angenommen. C++ ist eine OOP-Sprache, die einen schnellen, maschinell ausführbaren Code bietet. Überdies ist C++ für Projekte sowohl der kommerziellen Anwendung als auch der Systemprogrammierung geeignet. Einstweilen scheint C++ unter vielen OOP-Programmierern die populärste Wahl zu sein, aber es ist eine Unmenge von anderen OOP-Sprachen wie beispielsweise Smalltalk, Common Lisp Object System (CLOS) und Eiffel vorhanden. Zusätzlich werden herkömmlicheren populären Computerprogrammiersprachen wie beispielsweise Pascal OOP-Fähigkeiten hinzugefügt.
  • Die Vorteile von Objektklassen können zusammengefasst werden wie folgt:
    • • Objekte und ihre entsprechenden Klassen zerlegen komplexe Programmierprobleme in viele kleinere, einfachere Probleme.
    • • Eine Einkapselung erzwingt durch die Organisation von Daten in kleine, unabhängige Objekte, die miteinander kommunizieren können, eine Datenabstraktion. Die Einkapselung schützt die Daten in einem Objekt vor einer zufälligen Beschädigung, aber ermöglicht es anderen Objekten, durch ein Aufrufen der Mitgliedsfunktionen und -strukturen des Objekts mit den Daten zu interagieren.
    • • Eine Unterklassifizierung (Subclassing) und eine Vererbung ermöglichen es, Objekte durch ein Ableiten von neuen Arten von Objekten aus den in dem System verfügbaren Standardklassen zu erweitern und modifizieren. Somit werden neue Fähigkeiten erzeugt, ohne dass ganz von vorne angefangen werden muss.
    • • Ein Polymorphismus und eine Mehrfachvererbung ermöglichen es verschiedenen Programmierern, charakteristische Merkmale von vielen verschiedenen Klassen zu mischen und anzupassen und spezialisierte Objekte, die immer noch auf voraussagbare Weisen mit zugehörigen Objekten arbeiten können, zu erzeugen.
    • • Klassenhierarchien und Eindämmungshierarchien stellen einen flexiblen Mechanismus zum Modellieren von Objekten der realen Welt und der Beziehung zwischen ihnen bereit.
    • • Bibliotheken von wieder verwendbaren Klassen sind in vielen Situationen verwendbar, aber sie haben auch einige Beschränkungen. Zum Beispiel:
    • • Komplexität. In einem komplexen System können die Klassenhierarchien für zugehörige Klassen äußerst verwirrend werden, mit vielen dutzenden oder sogar hunderten von Klassen.
    • • Ablauf der Steuerung. Ein mit der Hilfe von Klassenbibliotheken geschriebenes Programm ist immer noch für den Ablauf der Steuerung verantwortlich (das heißt es muss die Interaktionen zwischen allen den aus einer speziellen Bibliothek erzeugten Objekten steuern). Der Programmierer muss entscheiden, welche Funktionen für welche Arten von Objekten zu welchen Zeiten aufzurufen sind.
    • • Verdoppelung der Anstrengung. Obwohl Klassenbibliotheken es Programmierern ermöglichen, viele kleine Stücke von Code zu verwenden und wieder zu verwenden, setzt jeder Programmierer die Stücke auf eine verschiedene Weise zusammen. Zwei verschiedene Programmierer können abhängig von hunderten von kleinen Entscheidungen, die jeder Programmierer nebenbei trifft, den gleichen Satz von Klassenbibliotheken zum Schreiben von zwei Programmen verwenden, die genau dasselbe tun, aber deren interne Struktur (das heißt deren Entwurf) ziemlich verschieden sein kann. Unvermeidlich enden ähnliche Stücke von Code damit, dass sie ähnliche Dinge auf leicht verschiedene Weisen tun und nicht so gut zusammenarbeiten wie sie sollten.
  • Klassenbibliotheken sind sehr flexibel. Während Programme komplexer werden, sind mehr Programmierer gezwungen, grundlegende Lösungen für grundlegende Probleme immer wieder neu zu erfinden. Eine relativ neue Erweiterung des Klassenbibliothekskonzepts besteht darin, einen Rahmen von Klassenbibliotheken zu haben. Dieser Rahmen ist komplexer und besteht aus bedeutsamen Sammlungen von zusammenarbeitenden Klassen, die sowohl die kleinen Muster als auch große Mechanismen, die die gemeinsamen Anforderungen und den gemeinsamen Entwurf in einem spezifischen Anwendungsbereich realisieren, erfassen. Sie wurden zuerst aus den an einem Anzeigen von Menüs, Fenstern, Dialogfeldern und anderen Standardbenutzerschnittstellenelementen für Personal Computer beteiligten Arbeiten für Programmierer von freien Anwendungen entwickelt.
  • Rahmen repräsentieren auch eine Änderung der Weise, in der Programmierer über die Interaktion zwischen dem Code, den sie schreiben, und durch andere geschriebenem Code nachdenken. In den frühen Tagen der prozeduralen Programmierung rief der Programmierer durch das Betriebssystem bereitgestellte Bibliotheken auf, um bestimmte Aufgaben durchzuführen, aber grundsätzlich lief das Programm die Seite herunter vom Anfang bis zum Ende ab, und der Programmierer war einzig und allein für den Ablauf der Steuerung verantwortlich. Dies war für ein Ausdrucken von Gehaltsschecks, ein Berechnen einer mathematischen Tabelle oder ein Lösen anderer Probleme mit einem Programm, das auf genau eine Weise ablief, passend.
  • Die Entwicklung von graphischen Benutzerschnittstellen begann diesen prozeduralen Programmierungsaufbau umzukrempeln. Diese Schnittstellen ermöglichen es dem Benutzer eher als eine Programmlogik, das Programm anzusteuern und zu entscheiden, wann gewisse Aktionen durchgeführt werden sollten. Heutzutage erreicht die meiste Software für Personal Computer dies mittels einer Ereignisschleife, die die Maus, die Tastatur und andere Quellen von externen Ereignissen überwacht und die passenden Teile des Codes des Programmierers gemäß Aktionen, die der Benutzer durchführt, aufruft. Der Programmierer bestimmt nicht mehr die Reihenfolge, in der Ereignisse auftreten. Stattdessen wird ein Programm in getrennte Stücke aufgeteilt, die zu nicht voraussagbaren Zeiten und in einer nicht voraussagbaren Reihenfolge aufgerufen werden. Indem die Steuerung auf diese Weise an Benutzer abgetreten wird, erzeugt der Entwickler ein Programm, das viel leichter zu verwenden ist. Dennoch rufen einzelne Stücke des durch den Entwickler geschriebenen Programms immer noch durch das Betriebssystem bereitgestellte Bibliotheken auf, um gewisse Aufgaben zu erfüllen, und der Programmierer muss immer noch den Ablauf der Steuerung in jedem Stück, nachdem es durch die Ereignisschleife aufgerufen ist, bestimmen. Anwendungscode "sitzt" immer noch "oben auf" dem System.
  • Selbst Ereignisschleifenprogramme verlangen von Programmierern, viel Code zu schreiben, bei dem es nicht nötig sein sollte, ihn für jede Anwendung getrennt zu schreiben. Das Konzept eines Anwendungsrahmens bringt das Ereignisschleifenkonzept weiter. Statt sich mit allen den praktischen Grundlagen des Aufbauens von grundlegenden Menüs, Fenstern und Dialogfeldern zu befassen und daraufhin diese Dinge alle zum Zusammenarbeiten zu veranlassen fangen Anwendungsrahmen verwendende Programmierer hier mit arbeitendem Anwendungscode und grundlegenden Benutzerschnittstellenelementen an. Anschließend bauen sie von dort aus auf, indem sie einige der generischen Fähigkeiten des Rahmens durch die spezifischen Fähigkeiten der beabsichtigten Anwendung ersetzen.
  • Anwendungsrahmen verringern die gesamte Menge von Code, die ein Programmierer von Grund auf schreiben muss. Da jedoch der Rahmen wirklich eine generische Anwendung ist, die Fenster anzeigt, ein Kopieren und Einfügen unterstützt usw., kann der Programmierer auch die Steuerung in einem größeren Maße abgeben als es Ereignisschleifenprogramme erlauben. Der Rahmencode kümmert sich um beinahe die ganze Ereignishandhabung und den ganzen Ablauf der Steuerung, und der Code des Programmierers wird nur aufgerufen, wenn der Rahmen ihn benötigt (zum Beispiel zum Erzeugen oder Manipulieren einer proprietären Datenstruktur).
  • Ein ein Rahmenprogramm schreibender Programmierer gibt nicht nur die Steuerung an den Benutzer ab (wie es auch für Ereignisschleifenprogramme zutrifft), sondern gibt auch den detaillierten Ablauf der Steuerung in dem Programm an den Rahmen ab. Dieser Ansatz ermöglicht die Erzeugung von komplexeren Systemen, die im Gegensatz zu isolierten Programmen, die maßgeschneiderten Code haben und für ähnliche Probleme immer wieder erzeugt werden, auf interessante Weisen zusammenarbeiten.
  • Somit ist wie vorstehend erläutert ein Rahmen grundsätzlich eine Sammlung von zusammenarbeitenden Klassen, die eine wieder verwendbare Entwurfslösung für einen gegebenen Problembereich bilden. Er weist typischerweise Objekte auf, die ein vorgegebenes Verhalten bereitstellen (zum Beispiel für Menüs und Fenster), und Programmierer verwenden ihn, indem sie einiges von dem vorgegebenen Verhalten vererben und ein anderes Verhalten übergehen, so dass der Rahmen Anwendungscode zu den passenden Zeiten aufruft.
  • Es sind drei Hauptunterschiede zwischen Rahmen und Klassenbibliotheken vorhanden:
    • • Verhalten gegen Protokoll. Klassenbibliotheken sind im Wesentlichen Sammlungen von Verhalten, die du aufrufen kannst, wenn du die einzelnen Verhalten in deinem Programm möchtest. Ein Rahmen stellt demgegenüber nicht nur ein Verhalten, sondern auch das Protokoll oder den Satz von Regeln, die die Weisen, auf die Verhalten kombiniert werden können, leiten einschließlich Regeln dafür, was ein Programmierer bereitstellen soll, gegen das, was der Rahmen bereitstellt, bereit.
    • • Aufruf gegen Übergehen. Mit einer Klassenbibliothek instanziiert der Programmierer Objekte und ruft ihre Mitgliedsfunktionen auf. Es ist möglich, Objekte mit einem Rahmen auf die gleiche Weise zu instanziieren und aufzurufen (das heißt den Rahmen als eine Klassenbibliothek zu behandeln), aber um den wieder verwendbaren Entwurf eines Rahmens voll auszunutzen, schreibt ein Programmierer typischerweise Code, der übergeht und durch den Rahmen aufgerufen wird. Der Rahmen verwaltet den Ablauf der Steuerung zwischen seinen Objekten. Ein Schreiben eines Programms umfasst eher ein Aufteilen von Verantwortlichkeiten unter den verschiedenen Stücken von Software, die durch den Rahmen aufgerufen werden, als ein Bestimmen, wie die verschiedenen Stücke zusammenarbeiten sollten.
    • • Realisierung gegen Entwurf. Mit Klassenbibliotheken verwenden Programmierer nur Realisierungen wieder, wohingegen sie mit Rahmen einen Entwurf wieder verwenden. Ein Rahmen verkörpert die Weise, auf die eine Familie von zusammengehörigen Programmen oder Stücken von Software arbeitet. Er stellt eine generische Entwurfslösung dar, die an eine Vielfalt von spezifischen Problemen in einem gegebenen Bereich angepasst werden kann. Ein einzelner Rahmen kann zum Beispiel die Weise verkörpern, auf die eine Benutzerschnittstelle arbeitet, wenn auch zwei mit dem gleichen Rahmen erzeugte verschiedene Benutzerschnittstellen ziemlich verschiedene Schnittstellenprobleme lösen können.
  • Somit können durch die Entwicklung von Rahmen für Lösungen für verschiedene Probleme und Programmieraufgaben bedeutsame Verringerungen der Entwurfs- und Entwicklungsanstrengung für Software erreicht werden. Ein bevorzugtes Ausführungsbeispiel der Erfindung nutzt Hypertext Markup Language (HTML) zum Realisieren von Dokumenten auf dem Internet zusammen mit einem universellen sicheren Kommunikationsprotokoll für ein Transportmedium zwischen dem Client und der Newco. HTTP oder andere Protokolle können ohne ein übermäßiges Experimentieren leicht an die Stelle von HTML gesetzt werden. Informationen über diese Produkte sind in T. Berners-Lee, D. Connoly, "RFC 1866: Hypertext Markup Language – 2.0" (Nov. 1995); und R. Fielding, H. Frystyk, T. Berners-Lee, J. Gettys und J. C. Mogul, "Hypertext Transfer Protocol – HTTP/1.1: HTTP Working Group Internet Draft" (2. Mai 1996) verfügbar. HTML ist ein einfaches Datenformat, das zum Erzeugen von Hypertext- Dokumenten, die von einer Plattform zu einer anderen portierbar sind, verwendet wird. HTML-Dokumente sind SGML-Dokumente mit einer generischen Semantik, die für ein Darstellen von Informationen aus einem breiten Spektrum von Bereichen passend sind. HTML ist durch die globale Informationsinitiative des World-Wide Web seit 1990 in Verwendung gewesen. HTML ist eine Anwendung des ISO-Standards 8879; 1986 Information Processing Text and Office Systems; Standard Generalized Markup Language (SGML).
  • Bis heute sind Web-Entwicklungswerkzeuge in ihrer Fähigkeit zum Erzeugen von dynamischen Web-Anwendungen die sich von einem Client zu einem Server erstrecken und mit vorhandenen Rechenbetriebsmitteln zusammenarbeiten, begrenzt gewesen. Bis vor kurzem ist HTML die bei der Entwicklung von Web-basierten Lösungen verwendete dominierende Technologie gewesen. HTML hat sich jedoch in den folgenden Bereichen als unzulänglich erwiesen:
    • • Schlechte Leistung;
    • • Beschränkte Benutzerschnittstellenfähigkeiten;
    • • Kann nur statische Web-Seiten produzieren;
    • • Fehlen von Interoperabilität mit vorhandenen Anwendungen und Daten; und
    • • Unfähigkeit zum Skalieren.
  • Die Sprache Java von Sun Microsystem löst viele der Probleme auf der Clientseite durch ein:
    • • Verbessern der Leistung auf der Clientseite;
    • • Ermöglichen der Erzeugung von dynamischen Echtzeit-Web-Anwendungen; und
    • • Bereitstellen der Fähigkeit zum Erzeugen einer breiten Vielfalt von Benutzerschnittstellenkomponenten.
  • Mit Java können Entwickler robuste Benutzerschnittstellen-Komponenten (UI-Komponenten) erzeugen. Angepasste "Widgets" (zum Beispiel Echtzeitaktienlaufschriften, animierte Icons bzw. Symbole usw.) können erzeugt werden, und die Leistung auf der Clientseite wird verbessert. Anders als HTML unterstützt Java den Gedanken der Validierung auf der Clientseite und des Abladens einer passenden Verarbeitung auf den Client für eine verbesserte Leistung. Dynamische Echtzeit-Web-Seiten können erzeugt werden. Unter Verwendung der vorstehend angeführten angepassten UI-Komponenten können auch dynamische Web-Seiten erzeugt werden.
  • Die Sprache Java von Sun hat sich als eine durch die Industrie anerkannte Sprache zum "Programmieren des Internets" herausgestellt. Sun definiert Java als: "eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutrale, portierbare, leistungsstarke, multithreading-fähige, dynamische, schlagwortverträgliche, universelle Programmiersprache. Java unterstützt eine Programmierung für das Internet in der Form von plattformunabhängigen Java-Applets." Java-Applets sind kleine, spezialisierte Anwendungen, die der Java-Anwendungsprogrammierschnittstelle (Java-API) von Sun entsprechen, die es Entwicklern ermöglicht, "interaktiven Inhalt" zu Web-Dokumenten hinzuzufügen (zum Beispiel einfache Animationen, Seitenverziehrungen, einfache Spiele usw.). Applets laufen in einem Java-kompatiblen Browser (zum Beispiel Netscape Navigator) ab, indem Code von dem Server zu dem Client kopiert wird. Von einem Sprachstandpunkt aus basiert der Kernmerkmalssatz von Java auf C++. Die Java-Literatur von Sun gibt an, dass Java grundsätzlich "C++ mit Erweiterungen von objektivem C für eine dynamischere Verfahrenslösung" ist.
  • Eine andere Technologie, die eine ähnliche Funktion wie JAVA bereitstellt, wird durch Microsoft und ActiveX-Technologien (ActiveX Technologies) bereitgestellt, um Entwicklern und Web-Entwerfern Mittel zum Aufbauen von dynamischem Inhalt für das Internet und Personal Computer zu geben. ActiveX weist Werkzeuge zum Entwickeln einer Animation, einer dreidimensionalen virtuellen Realität, eines Videos und von anderem Multimediainhalt auf. Die Werkzeuge verwenden Internet-Standards, arbeiten auf mehreren Plattformen und werden durch über 100 Firmen unterstützt. Die Aufbaublöcke der Gruppe werden als ActiveX-Controls bzw. ActiveX-Steuerungen bezeichnet, kleine, schnelle Komponenten, die es Entwicklern ermöglichen, Teile von Software in Hypertext-Markup-Language-Seiten (HTML-Seiten) einzubetten. ActiveX-Steuerungen arbeiten mit einer Vielfalt von Programmiersprachen einschließlich Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic Programmiersystem und in der Zukunft dem Entwicklungswerkzeug von Microsoft für Java, dessen Codename "Jakarta" ist. ActiveX-Technologien schließen auch einen ActiveX-Serverrahmen ein, der es Entwicklern ermöglicht, Serveranwendungen zu erzeugen. Ein Durchschnittsfachmann erkennt leicht, dass ActiveX ohne ein übermäßiges Experimentieren an die Stelle von JAVA gesetzt werden könnte, um die Erfindung in die Praxis umzusetzen.
  • Ausführliche Beschreibung
  • Ein Ausführungsbeispiel der vorliegenden Erfindung ist ein serverbasierter Rahmen, der eine komponentenbasierte Architektur nutzt. Mit Bezug auf die 2A weist ein Ausführungsbeispiel der vorliegenden Erfindung ein Architekturobjekt 200, ein Anwendungsobjekt 202, ein Benutzerschnittstellenformular 204, eine Benutzerschnittstellensteuerungseinrichtung bzw. Benutzerschnittstellensteuerungseinheit 206, einen Clientkomponentenadapter 208, eine COM-Komponentenschnittstelle 210 und eine Serverkomponente 222 auf.
  • Im Allgemeinen arbeiten die Komponenten der vorliegenden Erfindung wie in der 2B gezeigt. In einem Schritt 230 werden Daten in einem Objekt der Komponente gespeichert. In einem Schritt 232 werden Funktionen, die das Objekt manipulieren, mit den Objektdaten eingekapselt. Später können in einem Schritt 234 die gespeicherten Objektdaten unter Nutzung der Funktionen des Schritts 232 durch andere Komponenten manipuliert werden.
  • Architekturobjekt
  • Das Architekturobjekt 200 stellt ein leicht zu verwendendes Objektmodell bereit, das die Komplexität der Architektur auf dem Client verschleiert. Das Architekturobjekt 200 stellt rein technische Dienste bereit und enthält nicht irgendeine Geschäftslogik oder irgendeinen Funktionscode. Es wird auf dem Client als der einzige Zugriffspunkt für alle Architekturdienste verwendet.
  • Auf der Serverseite wird das Architekturobjekt 200 durch einen Satz von in Standard-VB-Modulen enthaltenen globalen Funktionen unterstützt.
  • Das Architekturobjekt 200 ist für ein Bereitstellen aller Clientarchitekturdienste (das heißt Codetabellenzugriff, Fehlerprotokollierung usw.) und eines einzelnen Eingangspunkts für Architekturdienste verantwortlich. Das Architekturobjekt ist auch dafür verantwortlich, es der Architektur zu ermöglichen, dass sie als eine autonome Einheit vorhanden ist, so dass es ermöglicht wird, interne Änderungen an der Architektur mit minimalen Auswirkungen auf die Anwendung auszubilden.
  • Das Architekturobjekt 200 stellt eine Codeverwaltungseinheit, ein Clientprofil, eine Textverwaltungseinheit, eine ID-Verwaltungseinheit, eine Registrierdatenbankverwaltungseinheit, eine Protokollverwaltungseinheit, eine Fehlerverwaltungseinheit und eine Sicherheitsverwaltungseinheit bereit. Die Codeverwaltungseinheit liest Codes aus einer lokalen Datenbank auf dem Client, führt die Codes in Objekte und macht sie für die Anwendung verfügbar. Das Clientprofil stellt Informationen über den derzeit angemeldeten Benutzer bereit. Die Textverwaltungseinheit stellt verschiedene Textmanipulationsdienste wie beispielsweise ein Suchen und Ersetzen bereit. Die ID-Verwaltungseinheit erzeugt eindeutige IDs und Zeitstempel. Die Registrierdatenbankverwaltungseinheit kapselt einen Zugriff auf die Systemregistrierdatenbank ein. Die Protokollverwaltungseinheit schreibt Fehler- oder Informationsnachrichten in das Nachrichtenprotokoll. Die Fehlerverwaltungseinheit stellt einen leichten Weg zum Speichern bzw. Sichern und Neuvorbringen eines Fehlers bereit. Und die Sicherheitsverwaltungseinheit bestimmt, ob der derzeitige Benutzer zum Durchführen gewisser Aktionen autorisiert ist oder nicht.
  • Anwendungsobjekt
  • Das Anwendungsobjekt 202 hat ein Verfahren zum Einleiten jeder Geschäftsoperation in der Anwendung. Es verwendet ein spätes Binden zum Instanziieren von Ziel-UI-Steuerungseinheiten, um eine Autonomie zwischen Fenster bereitzustellen. Dies ermöglicht es verschiedenen Steuerungseinheiten, das Anwendungsobjekt 202 ohne ein statisches Verknüpfen mit jeder UI-Steuerungseinrichtung bzw. UI-Steuerungseinheit in der Anwendung zu verwenden.
  • Wenn es eine UI-Steuerungseinheit öffnet, ruft das Anwendungsobjekt 202 die Architekturinitialisierungs-, Klasseninitialisierungs- und Formularinitialisierungsmitgliedsfunktionen auf.
  • Das Anwendungsobjekt 202 hält eine Liste von jedem aktiven Fenster, so dass es die Anwendung in dem Fall eines Fehlers schließen bzw. ausschalten kann. Wenn ein Fenster sich schließt, teilt es dies dem Anwendungsobjekt 202 mit und wird aus der Liste von aktiven Fenstern des Anwendungsobjekts 202 entfernt.
  • Das Anwendungsobjekt 202 ist für ein Instanziieren jeder UI-Steuerungseinheit 206, ein Leiten von Daten/Geschäftskontext zu der Ziel-UI-Steuerungseinheit 206 und ein Aufrufen von Standarddiensten wie beispielsweise Steuerungseinheit initialisieren, Formular initialisieren und Architektur initialisieren verantwortlich. Das Anwendungsobjekt 202 verfolgt auch, welche Fenster aktiv sind, so dass es den Ausschaltprozess koordinieren kann.
  • UI-Formular
  • Die primäre Verantwortlichkeit des UI-Formulars 204 besteht darin, wichtige Ereignisse zu seiner Steuerungseinheit 206 weiterzuleiten. Es bleibt größtenteils unintelligent und enthält so wenig Logik wie möglich. Die meisten Ereignishandhabungseinheiten bei dem Formular delegieren die Arbeit einfach, indem sie Verfahren auf der Steuerungseinheit 206 des Formulars aufrufen.
  • Das UI-Formular 204 gibt seine eigenen Steuerungen nie frei oder sperrt sie, sondern bittet seine Steuerungseinheit 206, es stattdessen zu tun. Eine Logik ist nur dann in dem UI-Formular 204 enthalten, wenn sie eine sehr einfache Feldmaskierung oder kleinere visuelle Details umfasst.
  • Das UI-Formular 204 präsentiert eine leicht zu verwendende, graphische Schnittstelle für den Benutzer und informiert seine Steuerungseinheit 206 über wichtige Benutzeraktionen. Das UI-Formular 204 kann auch eine grundlegende Datenvalidierung (zum Beispiel eine Datentypvalidierung) durch eine Eingabemaskierung bereitstellen. Darüber hinaus ist das UI-Formular für ein intelligentes Ändern seiner Größe, ein Starten einer kontextempfindlichen Hilfe und ein Ausladen von sich selbst verantwortlich.
  • Benutzerschnittstellensteuerungseinheit
  • Jede UI-Steuerungseinheit 206 weist einen Satz von Standardverfahren zur Initialisierung, zum Freigeben und zum Sperren von Steuerungen bei seinem UI-Formular 204, zum Validieren von Daten in dem Formular, zum Gewinnen von Daten aus dem UI-Formular 204 und zum Ausladen des UI-Formulars 204 auf.
  • UI-Steuerungseinheiten 206 enthalten die Mehrheit der Logik zum Manipulieren von Geschäftsobjekten 207 und Verwalten des Aussehens ihres UI-Formulars 204. Falls ihr Formular nicht nur zum Lesen ist, verfolgt die UI-Steuerungseinheit 206 auch, ob sich Daten in dem UI-Formular 204 geändert haben oder nicht, um unnötige Datenbankschreibvorgänge zu vermeiden, wenn der Benutzer sich entscheidet, zu sichern. Darüber hinaus verfolgen Steuerungseinheiten von Hilfsfenstern (wie dem Dateispeicherungsdialogfeld in Microsoft Word) ihre aufrufende UI-Steuerungseinheit 206, so dass sie es mitteilen können, wenn sie zum Schließen bereit sind.
  • Die 2C zeigt ein Flussdiagramm, das darstellt, wie die UI-Steuerungseinheit bei einem Ausführungsbeispiel der vorliegenden Erfindung arbeitet. In einem Schritt 236 werden durch einen Benutzer Daten in einem UI-Formular eingetragen. In einem Schritt 238 interpretiert die UI-Steuerungseinheit die in das UI-Formular eingetragenen Daten. In einem Schritt 240 platziert die UI-Steuerungseinheit die passenden Daten in einem später zu nutzenden und wiederzugewinnenden Geschäftsobjekt.
  • Eine UI-Steuerungseinheit 206 definiert eine logische Arbeitseinheit (LUW bzw. Logical Unit of Work). Falls eine LUW mehr als eine UI-Steuerungseinheit 206 umfasst, wird die LUW als ein getrenntes Objekt realisiert.
  • Die UI-Steuerungseinheit 206 ist für ein Handhaben von durch den mit dem UI-Formular 204 interagierenden Benutzer erzeugten Ereignissen und ein Bereitstellen einer komplexen Feldvalidierung und einer feldüberschreitenden Validierung in einer logischen Arbeitseinheit verantwortlich. Die UI-Steuerungseinheit 206 enthält auch die Logik zum Interagieren mit Geschäftsobjekten 207 und erzeugt nötigenfalls neue Geschäftsobjekte 207. Schließlich interagiert die UI-Steuerungseinheit 206 zum Hinzufügen, Wiedergewinnen, Modifizieren oder Löschen von Geschäftsobjekten 207 mit Clientkomponentenadaptern 208 und handhabt alle Fehler auf der Clientseite.
  • Geschäftsobjekte
  • Die primäre Funktionalität des Geschäftsobjekts (BO bzw. Business Object) 207 besteht darin, als ein Datenhalter zu fungieren, der es ermöglicht, Daten unter Verwendung eines objektbasierten Programmiermodells quer über Benutzerschnittstellensteuerungseinheiten 206 gemeinsam zu nutzen.
  • BOs 207 führen eine Validierung bei ihren Attributen durch, da sie dazu eingerichtet werden, die Integrität der Informationen, die sie enthalten, aufrechtzuerhalten. BOs 207 zeigen auch andere Verfahren als Zugreifer bzw. Accessoren zum Manipulieren ihrer Daten, wie beispielsweise Verfahren zum Ändern des Lebenszykluszustands eines BOs 207 oder zum Ableiten des Werts eines berechneten Attributs.
  • In vielen Fällen wird ein BO 207 seine eigene Tabelle in der Datenbank und sein eigenes Fenster für Betrachtungs- oder Bearbeitungsoperationen haben.
  • Geschäftsobjekte 207 enthalten Informationen über eine einzelne Geschäftseinheit und erhalten die Integrität der Informationen aufrecht. Das BO 207 kapselt Geschäftsregeln, die zu der einzelnen Geschäftseinheit gehören, ein und erhält Beziehungen mit anderen Geschäftsobjekten aufrecht (zum Beispiel enthält ein Anspruch eine Sammlung von Ergänzungen). Schließlich stellt das BO 207 sich auf den Status der Informationen, die es enthält, beziehende zusätzliche Eigenschaften bereit (wie beispielsweise ob die Informationen sich geändert haben oder nicht), stellt nötigenfalls eine Validierung von neuen Daten bereit und berechnet Attribute, die aus anderen Attributen abgeleitet werden (wie beispielsweise einen vollen Namen, der aus einem Vornamen, einer mittleren Initiale und einem Nachnamen abgeleitet wird).
  • Clientkomponentenadapter
  • Clientkomponentenadapter (CCAs) 208 sind für ein Wiedergewinnen, ein Hinzufügen, ein Aktualisieren und ein Löschen von Geschäftsobjekten in der Datenbank verantwortlich. CCAs 208 verbergen das Speicherformat und den Ort von Daten vor der UI-Steuerungseinheit 206. Die UI-Steuerungseinheit 206 sorgt sich nicht darum, wo oder wie Objekte gespeichert sind, da der CCA 208 sich darum kümmert.
  • Der CCA 208 führt in durch den Server zurückgegebenen Datensatzgruppen enthaltene Daten in Geschäftsobjekte 207. CCAs 208 maskieren alle Fernanforderungen von der UI-Steuerungseinheit 206 an eine spezifische Komponente und fungieren als ein "Haken" ("hook") für Dienste wie beispielsweise eine Datenkomprimierung und eine Datenverschlüsselung.
  • COM-Komponentenschnittstelle
  • Eine COM-Komponentenschnittstelle (CCI) 210 ist ein "Vertrag" für durch eine Komponente bereitgestellte Dienste. Durch ein "Realisieren" einer Schnittstelle (CCI) 210 verspricht eine Komponente, alle die durch die CCI 20 definierten Dienste bereitzustellen.
  • Die CCI 210 ist keine physische Einheit (weshalb sie mit einer gestrichelten Linie dargestellt ist). Der einzige Grund für ihr Vorhandensein besteht darin, die Weise zu definieren, in der eine Komponente sich für andere Objekte zeigt. Sie weist die Signaturen oder Kopfteile aller der öffentlichen Eigenschaften oder Verfahren, die eine Komponente bereitstellen wird, auf.
  • Zum Realisieren einer CCI 210 zeigt eine Serverkomponente einen Satz von speziell genannten Verfahren, ein Verfahren für jedes bei der Schnittstelle definierte Verfahren. Diese Verfahren sollten nichts tun außer die Anforderung an ein privates Verfahren auf der Komponente, das die reale Arbeit tun wird, zu delegieren.
  • Die CCI 210 definiert einen Satz von durch eine Komponente bereitgestellten zugehörigen Diensten. Die CCI ermöglicht es jeder Komponente, sich hinter der Schnittstelle zu "verbergen", um die durch die Schnittstelle definierten Dienste durch ein "Realisieren" der Schnittstelle durchzuführen.
  • Serverkomponente
  • Serverkomponenten 222 sind grobkörnig und transaktionsorientiert. Sie sind für eine maximale Effizienz entworfen.
  • Serverkomponenten 222 kapseln den ganzen Zugriff auf die Datenbank ein und definieren Geschäftstransaktionsgrenzen. Darüber hinaus sind Serverkomponenten 222 dafür verantwortlich, sicherzustellen, dass Geschäftsregeln während Datenzugriffsoperationen Folge geleistet wird.
  • Eine Serverkomponente 222 führt Datenzugriffsoperationen im Auftrag von CCAs 208 oder anderen Komponenten durch und nimmt durch ein Kommunizieren mit anderen Serverkomponenten 222 an sich über Serverkomponenten 222 erstreckenden Transaktionen teil. Die Serverkomponente 222 ist durch mehrere Eingangspersönlichkeiten (front end personalities) (zum Beispiel aktive Serverseiten) zugänglich und enthält eine zum Aufrechterhalten der Integrität von Daten in der Datenbank entworfene Geschäftslogik.
  • Die 2D zeigt ein Flussdiagramm, das die Interaktionen zwischen dem CCA, der CCI und der Serverkomponente gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt. In einem Schritt 242 wird eine Anforderung zum Platzieren von durch einen Client erzeugten Daten in der Serverdatenbank ausgebildet. In einem Schritt 244 werden die Daten unter Nutzung einer CCI 210 zu der Serverkomponente 222 transferiert. In einem Schritt 246 speichert die Serverkomponente 222 die Daten in der Serverdatenbank.
  • GESCHÄFTSREGELPLATZIERUNG
  • Überblick
  • Die Verteilung von Geschäftsregeln quer über Reihen bzw. Ränge (tiers) der Anwendung beeinflusst direkt die Robustheit und Leistung des Systems als Ganzes. Geschäftsregeln können in die folgenden Abschnitte kategorisiert werden: Beziehungen, Berechnungen und Geschäftsereignisse.
  • Beziehungen zwischen Geschäftsobjekten
  • Geschäftsobjekte 207 sind dafür verantwortlich, andere Geschäftsobjekte 207, mit denen sie verbunden sind, zu kennen.
  • Beziehungen zwischen BOs 207 werden durch den CCA 208 während des Führungsprozesses aufgebaut. Wenn zum Beispiel ein CCA 208 ein Anspruchs-BO 207 aufbaut, wird er nötigenfalls auch die Sammlung von Ergänzungen aufbauen.
  • Berechnete Geschäftsdaten
  • Auf Attributen des Geschäftsobjekts 207 basierende Berechnungen umfassende Geschäftsregeln sind in den Geschäftsobjekten 207 selbst codiert. Ein voller Name eines Teilnehmers ist ein gutes Beispiel für ein berechnetes Attribut. Statt die Steuerungseinheiten zu zwingen, jedes Mal, wenn sie den vollen Namen anzeigen möchten, den Vornamen, die mittlere Initiale und den Nachnamen zu verketten, wird ein berechnetes Attribut, das diese Logik durchführt, auf dem Geschäftsobjekt gezeigt. Auf diese Weise muss der Code zum Zusammensetzen des vollen Namens nur einmal geschrieben werden und kann durch viele Steuerungseinheiten 206 verwendet werden.
  • Ein anderes Beispiel für ein berechnetes Attribut ist das Anzeigedatum einer wiederholten Aufgabe. Wenn eine Aufgabe mit einer Wiederholungsregel abgeschlossen wird, muss ein neues Anzeigedatum bestimmt werden. Dieses Anzeigedatum wird basierend auf dem Datum, an dem die Aufgabe abgeschlossen wurde, und der durch die Wiederholungsregel definierten Frequenz der Wiederholung berechnet. Die Logik zum Berechnen des neuen Anzeigedatums in das Aufgaben-BO 207 zu legen stellt sicher, dass sie nur einmal codiert wird.
  • Antworten auf Geschäftsereignisse
  • Geschäftsregeln, die sich auf Systemereignisse beziehen und keine Benutzerinteraktion umfassen, werden auf den Serverkomponenten durchgeführt.
  • Ein Abschluss einer Aufgabe ist ein größeres Ereignis in dem System. Wenn eine Aufgabe abgeschlossen wird, stellt das System zuerst sicher, dass der die Aufgabe abschließende Ausführende zu dem Anspruch hinzugefügt wird. Nachdem die Aufgabe in der Datenbank als abgeschlossen markiert ist wird daraufhin überprüft, um zu sehen, ob die Aufgabe eine Wiederholungsregel hat. Falls dem so ist, wird eine andere Aufgabe erzeugt und zu der Datenbank hinzugefügt. Schließlich wird die Ereigniskomponente benachrichtigt, da es sein kann, dass die Aufgabeneinheit auf den Aufgabenabschluss reagieren muss.
  • Es wird das Szenario in Betracht gezogen, dass die Logik zum Durchführen dieser Regel auf der UI-Steuerungseinheit 206 platziert wäre.
  • Die Steuerungseinheit 206 ruft die Ausführendenkomponente auf, um zu sehen, ob der die Aufgabe abschließende Ausführende zu dem Anspruch hinzugefügt worden ist. Wenn der Ausführende nicht zu dem Anspruch hinzugefügt worden ist, dann ruft die Steuerungseinheit 206 die Ausführendenkomponente wieder auf, um ihn hinzuzufügen.
  • Als Nächstes ruft die Steuerungseinheit 206 die Aufgabenkomponente auf, um die Aufgabe in der Datenbank als abgeschlossen zu markieren. Falls die Aufgabe eine Wiederholungsregel hat, berechnet die Steuerungseinheit 206 das Datum, an dem die Aufgabe neu anzuzeigen ist, und ruft die Aufgabenkomponente wieder auf, um eine neue Aufgabe hinzuzufügen. Zum Schluss ruft die Steuerungseinheit 206 die Ereigniskomponente auf, um die Aufgabeneinheit von dem Aufgabenabschluss zu benachrichtigen.
  • Die vorstehende Realisierung erfordert in ihrem schlechtesten Fall fünf Netzumläufe. Darüber hinaus muss jede andere Steuerungseinheit 206 oder Serverkomponente 222, die eine Aufgabe abschließen möchte, diese Logik nochmals codieren. Ein Durchführen dieser Regel in der Aufgabenserverkomponente 222 verringert die Anzahl von Netzumläufen und beseitigt die Notwendigkeit, die Logik mehr als einmal zu codieren.
  • Antworten auf Benutzerereignisse
  • Alle Antworten auf Benutzerereignisse werden durch die Steuerungseinheit 206 koordiniert. Die Steuerungseinheit 206 ist für Aktionen wie beispielsweise ein Freigeben oder Sperren von Steuerungen bei seinem Formular, ein Anfordern einer Autorisierung von der Sicherheitskomponente oder ein Ausbilden von Aufrufen zu dem CCA 208 verantwortlich.
  • Autorisierung
  • Die ganze Logik zum Gewähren einer Autorisierung ist im Innern der Sicherheitskomponente eingekapselt.
  • Steuerungseinheiten 206 und Komponenten 222 müssen die Sicherheitskomponente fragen, ob der derzeitige Benutzer zum Ausführen gewisser Geschäftsoperationen in dem System autorisiert ist. Die Sicherheitskomponente wird gemäß einer vordefinierten Sicherheitslogik ja oder nein antworten.
  • Zusammenfassung
    Figure 00340001
  • Figure 00350001
  • FENSTERVERARBEITUNGSRAHMEN
  • Der Vorgabefensterrahmen stellt eine Vorgabefensterverarbeitung für jedes in dem System enthaltene Fenster bereit. Diese Vorgabeverarbeitung unterstützt den Entwickler bei einem Entwickeln von robusten, wartbaren UIs, standardisiert gemeinsame Prozesse (wie beispielsweise eine Formularinitialisierung) und erleichtert eine glatte Integration mit Architekturdiensten.
  • Die 3 zeigt den Lebenszyklus einer typischen Benutzerschnittstelle und die Standardverfahren, die zu dem Fensterverarbeitungsrahmen 300 gehören.
  • Der Fensterverarbeitungsrahmen 300 umfasst das Folgende:
    Fensterinitialisierung 302;
    Fenstersicherungsverarbeitung 304;
    Fenstersteuerungszustandsverwaltung 306;
    Fensterdatenvalidierung 308;
    Fensterausschaltverarbeitung 310.
  • Fensterinitialisierungsverarbeitung 302: Nach einem Erzeugen einer Steuerungseinheit 206 für das gewünschte Fenster ruft das Anwendungsobjekt 202 einen Satz von Standardinitialisierungsfunktionen auf der Steuerungseinheit 206 auf, bevor das Formular 204 für den Benutzer angezeigt wird. Ein Standardisieren dieser Funktionen macht die UIs überall in der Anwendung homogener, während eine gute Funktionszerlegung gefördert wird.
  • Fenstersicherungsverarbeitung 304: Zu jeder Zeit, zu der ein Benutzer einen beliebigen Formulartext aktualisiert oder ein Element zu einem Listenfeld hinzufügt, markiert die UI-Steuerungseinheit 206 das Formular als "dirty" bzw. "schmutzig". Dies ermöglicht es der UI-Steuerungseinheit 206, zu bestimmen, ob Daten sich geändert haben, wenn das Formular sich schließt, und den Benutzer zum Übertragen oder Verlieren seiner Änderungen aufzufordern.
  • Fenstersteuerungszustandsverwaltung 306: Ein Freigeben und Sperren von Steuerungen und Menüoptionen ist ein sehr komplexer Teil des Aufbauens einer UI. Die Logik, die den Zustand von Steuerungen modifiziert, ist zur Wartbarkeit an einer einzelnen Stelle eingekapselt.
  • Fensterdatenvalidierung 308: Wann immer sich in einem Formular Daten ändern, können Validierungsregeln gebrochen werden. Die Steuerungseinheit ist dazu in der Lage, die Änderungen zu erfassen, die Daten zu validieren und den Benutzer zum Korrigieren von ungültigen Einträgen aufzufordern.
  • Fensterausschaltverarbeitung 310: Der Fensterausschaltrahmen stellt einen klaren Beendungsweg für jede UI in dem Fall eines Fehlers bereit. Dies verringert das Risiko von Speicherlecks und allgemeinen Schutzverletzungen.
  • Vorteile
  • Standardisierte Verarbeitung: Ein Standardisieren der Fensterverarbeitung erhöht die Homogenität der Anwendung. Dies stellt sicher, dass alle Fenster in der Anwendung für die Endbenutzer in einer konsistenten Art und Weise funktionieren, was bewirkt, dass die Anwendung leichter zu verwenden ist. Es verkürzt auch die Lernkurve für Entwickler und erhöht die Wartbarkeit, da alle Fenster in einer konsistenten Art und Weise codiert sind.
  • Vereinfachte Entwicklung: Entwickler können die in dem Fensterverarbeitungsrahmen dokumentierten besten Praktiken wirksam einsetzen, um erfolgreiche Entwurfs- und Codierungsentscheidungen zu treffen. Darüber hinaus stellt eine Hülle bzw. Shell einen "konservierten" ("canned") Code bereit, der Entwicklern während der Codierungsanstrengung einen Vorsprung gibt.
  • Geschichtete Architektur: Da mehrere Architekturmodule eine standardisierte Verarbeitung für jedes Anwendungsfenster bereitstellen, kann die Kernlogik für jedes Systemfenster geändert werden, indem einfach Modifikationen bei einer einzelnen Prozedur ausgebildet werden.
  • Fensterinitialisierung 302
  • Zum Öffnen eines neuen Fensters erzeugt das Anwendungsobjekt 202 die Steuerungseinheit 206 des Zielfensters und ruft eine Folge von Verfahren auf der Steuerungseinheit 206 auf, um sie zu initialisieren. Das Aufrufen dieser Verfahren, ArchInitClass, InitClass, InitForm und ShowForm, ist nachstehend veranschaulicht.
  • ArchInitClass
  • Der Hauptzweck der ArchInitClass-Funktion besteht darin, der Zielsteuerungseinheit 206 mitzuteilen, wer sie aufruft. Das Anwendungsobjekt 202 "führt die Einführungen aus", indem es eine Bezugnahme auf sich selbst und eine Bezugnahme auf die aufrufende Steuerungseinheit 206 zu der Zielsteuerungseinheit 206 leitet. Darüber hinaus dient es als ein Haken in die Steuerungseinheit 206 zum Hinzufügen von Architekturfunktionalität in der Zukunft.
  • Figure 00380001
  • InitClass
  • Diese Funktion stellt einen Weg für das Anwendungsobjekt 202 zum Zuweisen irgendwelcher Daten zu der Zielsteuerungseinheit 206, die sie zum Ausführen ihrer Verarbeitung benötigt, bereit. An diesem Punkt kann die Zielsteuerungseinheit 206 bestimmen, in welcher "Betriebsart" sie sich befindet. Typische Formularbetriebsarten schließen eine Hinzufügungsbetriebsart, eine Bearbeitungsbetriebsart und eine Betrachtungsbetriebsart ein. Falls das Fenster sich in der Hinzufügungsbetriebsart befindet, erzeugt es bei diesem Verfahren ein neues BO 207 des passenden Typs.
  • Figure 00380002
  • Figure 00390001
  • InitForm
  • Die InitForm-Prozedur jeder Steuerungseinheit 206 koordiniert eine Initialisierung des Formulars 204, bevor es angezeigt wird. Da die Initialisierung häufig ein Prozess mit mehreren Schritten ist, erzeugt InitForm das Fenster und delegiert daraufhin den Großteil der Initialisierungslogik an Helferverfahren, die jeweils einen einzigen Zweck haben, um den Regeln der guten Funktionszerlegung zu folgen. Zum Beispiel ist die Logik zum Bestimmen des Zustands eines Formulars 204 basierend auf Benutzeraktionen und relevanten Sicherheitsbeschränkungen und zum Bewegen zu dem Zustand in dem BestimmeFormularZustand-Verfahren bzw. DetermineFormState-Verfahren eingekapselt.
  • Figure 00390002
  • PopulateForm
  • PopulateForm ist ein privates Verfahren, das für ein Füllen des Formulars mit Daten während der Initialisierung verantwortlich ist. Es wird durch das InitForm-Verfahren genau einmal aufgerufen. PopulateForm wird zum Füllen von Kombinationsfeldern in einem Formular204, zum Gewinnen der Details eines Objekts für ein Bearbeitungsfenster oder zum Anzeigen von Objekten, die bereits durch den Benutzer ausgewählt worden sind, wie bei dem folgenden Beispiel verwendet.
  • Figure 00400001
  • ShowForm
  • Das ShowForm-Verfahren zentriert das neu initialisierte Formular 204 einfach und zeigt es an.
  • Figure 00400002
  • Figure 00410001
  • Fenstersteuerungszustandsverwaltung 306
  • Es ist häufig notwendig, Steuerungen in einem Formular 204 im Ansprechen auf Benutzeraktionen freizugeben oder zu sperren. Dieser Abschnitt beschreibt die durch die komponentenbasierte Architektur für MTS (CBAM) zum wirkungsvollen Verwalten dieses Prozesses angewendeten Muster.
  • Formularbetriebsart
  • Es ist hilfreich, zwischen einer Formularbetriebsart und einem Formularzustand zu unterscheiden. Eine Formularbetriebsart gibt den Grund dafür, dass das Formular 204 aufgerufen worden ist, an. Häufig werden Formulare 204 für mehr als einen Zweck verwendet. Ein übliches Beispiel ist die Verwendung des gleichen Formulars zum Betrachten, zum Hinzufügen und zum Bearbeiten eines speziellen Typs von Objekt wie beispielsweise einer Aufgabe oder einem Anspruch. In diesem Fall würden die Betriebsarten des Formulars Betrachten, Hinzufügen und Aktualisieren einschließen.
  • Die Betriebsarten eines Formulars 204 werden auch dazu verwendet, auf der Zugriffsstufe des derzeitigen Benutzers basierenden Sicherheitsbeschränkungen zu entsprechen. Zum Beispiel ist die Aufgabenbibliothek ein Fenster, das einen Zugriff auf Aufgabenvorlagen basierend auf der Rolle des derzeitigen Benutzers begrenzt. Sie kann eine Bibliothekarsbetriebsart und eine Nichtbibliothekarsbetriebsart haben, um die Tatsache widerzuspiegeln, dass es einem Nichtbibliothekarsbenutzer nicht erlaubt werden kann, Aufgabenvorlagen zu bearbeiten. Auf diese Weise helfen Betriebsarten dabei, der Anforderung Geltung zu verschaffen, dass gewisse Steuerungen in dem Formular 204 gesperrt bleiben, sofern der Benutzer nicht eine gewisse Zugriffsstufe hat.
  • Es ist nicht immer für ein Formular 204 notwendig, eine Betriebsart zu haben; ein Formular könnte so einfach sein, dass es nur eine Betriebsart – die Vorgabebetriebsart – haben würde. Selbst wenn es nicht unmittelbar notwendig ist, kann es in diesem Fall vorteilhaft sein, das Formular "betriebsartbewusst" ("mode-aware") auszubilden, so dass es leicht erweitert werden kann, sollte der Bedarf entstehen.
  • Formularzustand
  • Ein Formular 204 wird eine Anzahl von verschiedenen Zuständen für jede Betriebsart haben, wobei ein Zustand eine eindeutige Kombination von freigegebenen/gesperrten, sichtbaren/unsichtbaren Steuerungen ist. Wenn ein Formular 204 sich zu einem anderen Zustand bewegt, wird zumindest eine Steuerung freigegeben oder gesperrt oder auf irgendeine Weise modifiziert.
  • Ein Hauptunterschied zwischen der Formularbetriebsart und dem Formularzustand besteht darin, dass die Betriebsart bestimmt wird, wenn die Steuerungseinheit 206 initialisiert wird, und konstant bleibt, bis die Steuerungseinheit 206 endet. Der Zustand wird bestimmt, wenn das Fenster sich initialisiert, aber wird im Ansprechen auf Benutzeraktionen ständig neu ausgewertet.
  • Handhaben von UI-Ereignissen
  • Wenn der Wert einer Steuerung in dem Formular 204 sich ändert, ist es notwendig, den Zustand der Steuerungen in dem Formular (ob sie freigegeben/gesperrt oder sichtbar/unsichtbar sind oder nicht usw.) neu auszuwerten. Falls ein Ändern des Werts einer Steuerung bewirken könnte, dass der Zustand einer zweiten Steuerung sich ändert, wird eine Ereignishandhabungseinheit für das passende Ereignis der ersten Steuerung geschrieben.
  • Die folgende Tabelle listet gemeinsame Steuerungen und die Ereignisse, die ausgelöst werden, wenn ihr Wert sich ändert, auf.
  • Figure 00430001
  • Die Ereignishandhabungseinheit ruft das DetermineFormState-Verfahren auf der Steuerungseinheit 206 auf.
  • Einstellen des Zustands von Steuerungen
  • Es ist wesentlich für eine Wartbarkeit, dass der Prozess des Einstellens des Zustands von Steuerungen von dem Prozess zum Einstellen der Werte der Steuerungen getrennt ist. Das DetermineFormState-Verfahren auf der Steuerungseinheit 206 erzwingt diese Trennung zwischen einem Einstellen des Zustands von Steuerungen und einem Einstellen ihrer Werte.
  • DetermineFormState ist das einzige Verfahren, das den Zustand jeder der Steuerungen in dem Formular 204 modifiziert. Da Steuerungszustandsanforderungen so komplex sind und so weit variieren, ist dies die einzige durch den Architekturrahmen ausgebildete Beschränkung.
  • Nötigenfalls werden Parameter zu der DetermineFormState-Funktion geleitet, um als "Hinweise" oder "Anhaltspunkte" zum Bestimmen des neuen Zustands des Formulars 204 zu fungieren. Für komplexe Formulare ist es hilfreich, die DetermineFormState-Funktion in eine Anzahl von Helferfunktion, die jeweils eine Gruppe von zugehörigen Steuerungen in dem Formular handhaben oder das Formular 204 zu einem anderen Zustand bewegen, zu zerlegen.
  • Beispiel
  • Das Bearbeitungs-/Hinzufügungs-/Betrachtungsaufgabenfenster hat drei Betriebsarten: Bearbeiten, Hinzufügen und Betrachten. In der Hinzufügungsbetriebsart ist alles in dem Formular bearbeitbar. Ein paar Details werden in der Bearbeitungsbetriebsart gesperrt bleiben, da sie nur einmal eingestellt werden sollten, wenn die Aufgabe hinzugefügt wird. In sowohl der Hinzufügungsbetriebsart als auch der Bearbeitungsbetriebsart kann die Wiederholungsregel bearbeitet werden. Ein Freigeben eines Bearbeitens der Wiederholungsregel sperrt immer das manuelle Bearbeiten der Fälligkeits- und Anzeigedaten der Aufgabe. In der Betrachtungsbetriebsart sind nur die Kategorie Kombinationsfeld und privates Ankreuzfeld freigegeben.
  • Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • Fensterdatenvalidierung 308
  • Die Fensterdatenvalidierung ist der Prozess, durch den Daten in dem Fenster hinsichtlich Fehlern, Inkonsistenzen und einer richtigen Formatierung untersucht werden. Es ist um der Konsistenz willen wichtig, diesen Prozess bei allen Fenstern der Anwendung ähnlich oder identisch zu realisieren.
  • Typen der Validierung
  • Eingabemaskierung
  • Die Eingabemaskierung ist die erste Verteidigungslinie. Sie umfasst eine Reihenuntersuchung (üblicherweise Zeichen für Zeichen) der Daten, wie sie eingetragen werden, um den Benutzer sogar daran zu hindern, ungültige Daten einzutragen. Die Eingabemaskierung kann programmatisch oder über ein spezielles maskiertes Textfeld ausgeführt werden, jedoch befindet sich die Logik immer in dem Formular und wird aufgerufen, wann immer ein maskiertes Feld sich ändert.
  • Einzelfeldbereichsüberprüfung
  • Die Einzelfeldbereichsüberprüfung bestimmt die Gültigkeit des Werts eines Felds in dem Formular durch ein Vergleichen desselben mit einem Satz von gültigen Werten. Die Einzelfeldbereichsüberprüfung kann über ein Kombinationsfeld, eine Drehschaltfläche oder programmatisch in dem Formular ausgeführt werden und wird aufgerufen, wann immer sich das bereichsüberprüfte Feld ändert.
  • Feldüberschreitende Validierung
  • Die feldüberschreitende Validierung vergleicht die Werte von zwei oder mehr Feldern, um zu bestimmen, ob eine Validierungsregel erfüllt oder gebrochen wird, und tritt gerade vor einem Sichern (oder einem Suchen) auf. Die feldüberschreitende Validierung kann auf der Steuerungseinheit 206 oder dem Geschäftsobjekt 207 ausgeführt werden, jedoch ist es vorzuziehen, die Logik auf dem Geschäftsobjekt 207 zu platzieren, wenn die Validierungslogik durch mehrere Steuerungseinheiten 206 gemeinsam genutzt werden kann.
  • Ungültige Daten werden während des Eingabeprozesses so früh wie möglich abgefangen und zurückgewiesen. Die Eingabemaskierung und die Bereichsüberprüfung stellen die erste Verteidigungslinie bereit, gefolgt von der feldüberschreitenden Validierung, wenn das Fenster sichert (oder sucht).
  • Einzelfeldvalidierung
  • Die ganze Einzelfeldvalidierung wird über eine Sorte von Eingabemaskierung erreicht. Masken, die Textfeldern beigefügt sind, werden zum Validieren des Typs oder des Formats von Daten, die eingetragen werden, verwendet. Kombinationsfelder und Drehschaltflächen können ebenfalls zum Beschränken des Benutzers auf gültige Wahlmöglichkeiten verwendet werden. Falls keines von diesen ausreichend ist, kann eine kleine Menge von Logik auf der Ereignishandhabungseinheit des Formulars platziert werden, um die Maskierungsfunktionalität wie beispielsweise ein Halten eines Werts unter einer gewissen Schwelle oder ein Heraushalten von Apostrophen aus einem Textfeld durchzuführen.
  • Feldüberschreitende Validierung
  • Wenn der Benutzer OK oder Sichern anklickt, ruft das Formular das SindFormulardatenGültig bzw. IsFormDataValid auf der Steuerungseinheit auf, um die feldüberschreitende Validierung (zum Beispiel verifizieren, dass ein Anfangsdatum kleiner als ein Enddatum ist durchzuführen. Falls das Geschäftsobjekt 207 Validierungsregeln enthält, kann die Steuerungseinheit 206 ein Verfahren auf dem Geschäftsobjekt 207 aufrufen, um sich zu vergewissern, dass die Regeln nicht verletzt werden.
  • Falls ungültige Daten durch die Steuerungseinheit 206 erfasst werden, wird sie den Benutzer mit einem Nachrichtenfeld und falls möglich der Angabe, welches Feld oder welche Felder fehlerhaft sind, benachrichtigen. Unter keinen Umständen wird das Fenster eine Validierung durchführen, wenn der Benutzer versucht, abzubrechen.
  • Beispiel
    Figure 00490001
  • Figure 00500001
  • Fenstersicherungsverarbeitung 304
  • Die Fenster-"Sicherungsverarbeitung" umfasst ein Verfolgen von Änderungen bei Daten in einem Formular 204 und ein Ansprechen auf durch den Benutzer eingeleitete Sicherungs- und Abbruchereignisse.
  • Verfolgen von Änderungen bei Formulardaten
  • Jedes Fenster in der CBAM-Anwendung enthält ein Feld in seinem entsprechenden Steuerungsobjekt, das als der Dirty-Zustandsmerker bzw. Schmutzzustandsmerker bekannt ist. Der Schmutzzustandsmerker wird auf wahr eingestellt, wann immer ein Endbenutzer Daten in dem Fenster modifiziert. Dieses Feld wird durch die UI-Steuerungseinheit 206 abgefragt, um zu bestimmen, wenn ein Benutzer bei einem Abbruch aufgefordert werden sollte oder ob bei einer Fensterschließung eine Fernprozedur aufgerufen werden sollte.
  • Die Anwendungs-Shell stellt eine Standardverarbeitung für jedes eine OK- oder Sichern-Schaltfläche enthaltende Fenster bereit.
  • Sichern
  • Die Vorgabesicherungsverarbeitung ist in der UI-Steuerungseinheit 206 realisiert wie folgt:
    Die UI-Steuerungseinheit wird benachrichtigt, dass die OK-Schaltfläche angeklickt worden ist. Daraufhin überprüft die Steuerungseinheit 206 ihren Schmutzzustandsmerker. Falls der Zustandsmerker dirty bzw. schmutzig ist, ruft die Steuerungseinheit 206 das FormularAbfragen-Verfahren bzw. InterrogateForm-Verfahren zum Wiedergewinnen von Daten aus dem Formular 204 auf und ruft eine Serverkomponente 222 zum Speichern des Geschäftsobjekts 207 in der Datenbank auf. Wenn der Schmutzzustandsmerker nicht eingestellt ist, dann ist keine Sicherung notwendig. Das Fenster wird daraufhin geschlossen.
  • Abbrechen
  • Wenn der Benutzer ein Fenster abbricht, untersucht die UI-Steuerungseinheit 206 unmittelbar den Schmutzzustandsmerker. Falls der Zustandsmerker auf wahr eingestellt ist, wird der Benutzer dahingehend aufgefordert, dass seine Änderungen verloren werden, falls er sich entscheidet, das Fenster zu schließen.
  • Sobald er aufgefordert ist, kann der Benutzer sich dazu entschließen, das Schließen des Fensters fortzusetzen und seine Änderungen zu verlieren, oder kann sich entscheiden, nicht zu schließen und das Arbeiten fortzusetzen.
  • Fensterausschaltverarbeitung 310
  • In dem Fall eines Fehlers ist es manchmal notwendig, ein Fenster auszuschalten oder die ganze Anwendung zu beenden. Es ist entscheidend, dass alle Fenster dem Ausschaltprozess folgen, um die GPFs zu vermeiden, die gewöhnlich mit einem unrichtigen Beenden verbunden sind. Es folgt, wie das Fenster/die Anwendung ausgeschaltet wird.
  • Ausschaltbereich
  • Der Bereich des Ausschaltens ist so klein wie möglich. Falls ein Fehler in einer Steuerungseinheit 206 auftritt, der den Rest der Anwendung nicht beeinflusst, wird nur das Fenster ausgeschaltet. Falls ein Fehler auftritt, der die ganze Anwendung gefährdet, ist ein Weg zum schnellen Schließen jedes offenen Fensters in der Anwendung vorhanden. Die Fensterausschaltstrategie ist dazu in der Lage, sich auf beide Typen von Ausschalten einzustellen.
  • Ausschalten
  • Um zu wissen, welche Fenster ausgeschaltet werden müssen, verfolgt die Architektur, welche Fenster offen sind. Wann immer das Anwendungsobjekt 202 eine Steuerungseinheit 206 erzeugt, ruft es seine RegCTLR-Funktion auf, um die Steuerungseinheit 206 zu einer Sammlung von offenen Steuerungseinheiten hinzuzufügen. Wann immer ein Fenster sich schließt, teilt es desgleichen dem Anwendungsobjekt 202 mit, dass es sich schließt, indem es die UnRegCTLR-Funktion des Anwendungsobjekts 202 aufruft, und das Anwendungsobjekt 202 entfernt die sich schließende Steuerungseinheit 206 aus seiner Sammlung. In dem Fall eines Fehlers führt das Anwendungsobjekt 202 Schleifen durch seine Sammlung von offenen Steuerungseinheiten aus, wobei es jeder Steuerungseinheit mitteilt, dass sie sich "stilllegen" ("quiesce") oder unmittelbar ausschalten soll.
  • AllgemeineFehlerHandhabungseinheit
  • Die AllgemeineFehlerHandhabungseinheit (GeneralErrorHandler) ist ein Verfahren in MArch.bas, das als der Eingangspunkt in dem Fehlerhandhabungsmechanismus der Architektur fungiert. Eine Komponente oder eine Steuerungseinheit wird die AllgemeineFehlerHandhabungseinheit aufrufen, wenn sie auf irgendeinen Typ von unerwartetem oder unbekanntem Fehler stößt. Die AllgemeineFehlerHandhabungseinheit wird einen Wert zurückgeben, der angibt, was die Komponente oder Steuerungseinheit tun sollte: (1) bei der Zeile, die den Fehler ausgelöst hat, fortsetzen (2) bei der Anweisung nach der Zeile, die den Fehler ausgelöst hat, fortsetzen (3) die Funktion beenden (4) stilllegen (5) die ganze Anwendung ausschalten.
  • Figure 00540001
  • Zum Verhindern von rekursiven Aufrufen hält die AllgemeineFehlerHandhabungseinheit eine Sammlung von Steuerungseinheiten, die sich in dem Prozess des Ausschaltens befinden. Falls sie durch die gleiche Steuerungseinheit 206 zweimal nacheinander aufgerufen wird, ist sie dazu in der Lage, die Schleife zu erfassen und zu umgehen. Wenn die Steuerungseinheit 206 schließlich endet, ruft sie die UnRegisterError-Funktion auf, um die AllgemeineFehlerHandhabungseinheit wissen zu lassen, dass sie sich ausgeschaltet und aus der Sammlung von Steuerungseinheiten entfernt hat.
  • Ausschaltprozess
  • Nachdem ihr durch die AllgemeineFehlerHandhabungseinheit mitgeteilt worden ist, was zu tun ist, kann die mit einem Fehler beaufschlagte Steuerungseinheit 206 versuchen, die Anweisung, die den Fehler verursacht hat, auszuführen, fortzufahren als ob nichts passiert wäre, die derzeitige Funktion zu beenden, ihre Stilllegungsfunktion aufzurufen, um sich selbst auszuschalten, oder das Ausschaltverfahren auf dem Anwendungsobjekt 202 aufzurufen, um die ganze Anwendung auszuschalten.
  • Zusätzliche Standardverfahren
  • Suchen
  • Steuerungseinheiten 206, die Suchfenster verwalten, haben ein öffentliches Verfahren namens Find<Noun>s wobei <Noun> der Typ des Objekts, nach dem gesucht wird, ist. Dieses Verfahren wird in der Ereignishandhabungseinheit für die Finde-Nun-Schaltfläche aufgerufen.
  • Sichern
  • Jede Steuerungseinheit 206, die ein Bearbeitungsfenster verwaltet, hat ein als Sichern bzw. Save bezeichnetes öffentliches Verfahren, das Änderungen sichert, die der Benutzer bei den Daten in dem Formular 204 ausbildet. Dieses Verfahren wird durch die Ereignishandhabungseinheiten für sowohl die Sichern-Schaltfläche als auch die OK-Schaltfläche aufgerufen (wenn/falls die OK-Schaltfläche Änderungen vor einem Schließen sichern muss).
  • Schließen
  • Ein VB-Fenster wird durch den Benutzer auf mehrere Weisen geschlossen: über das Steuerungsfeld in der oberen linken Ecke, die X-Schaltfläche in der oberen rechten Ecke oder die Schließen-Schaltfläche. Wenn das Formular sich schließt, ist das einzige Verfahren, das ohne Rücksicht auf die Weise, in der das Schließen eingeleitet wurde, immer aufgerufen wird, die QueryUnload-Ereignishandhabungseinheit des Formulars 204.
  • Hierdurch kann kein standardmäßiges Schließungsverfahren vorhanden sein. Jede Verarbeitung, die auftreten muss, wenn ein Fenster sich schließt, ist in dem QueryUnload-Verfahren auf der Steuerungseinheit 206 (das durch die QueryUnload-Ereignishandhabungseinheit des Formulars aufgerufen wird) auszuführen.
  • Die VB-Anweisung, Lade Mich Aus bzw. Unload Me, erscheint in der Ereignishandhabungseinheit der Schließen-Schaltfläche, um den Ausladeprozess manuell einzuleiten. Auf diese Weise ahmt die Schließen-Schaltfläche die Funktionalität des Steuerungsfelds und der X-Schaltfläche nach, so dass der Schließungsprozess ohne Rücksicht darauf, wie der Benutzer das Schließen ausgelöst hat, jedes Mal auf die gleiche Weise gehandhabt wird. Die Ereignishandhabungseinheit der OK-Schaltfläche führt auch die Anweisung Unload Me aus, aber ruft zuerst das Sicherungsverfahren auf der Steuerungseinheit auf, um irgendwelche anhängigen Änderungen zu sichern.
  • GESCHÄFTSOBJEKTE
  • Geschäftsobjekte 207 sind für ein Enthalten von Daten, ein Aufrechterhalten der Integrität der Daten und ein Zeigen von Funktionen, die bewirken, dass die Daten leicht zu manipulieren sind, verantwortlich. Wann immer eine Logik zu einem einzelnen BO 207 gehört, ist sie ein Kandidat dafür, in dem BO platziert zu werden. Dies stellt sicher, dass sie nicht für jede Steuerungseinheit 206, die sie benötigt, einmal codiert wird. Es folgen einige Standardbeispiele für eine Geschäftsobjektlogik.
  • Geschäftslogik: Verwalten von Lebenszykluszustand
  • Überblick
  • Der "Zustand" eines Geschäftsobjekts 207 ist der Satz von allen seinen Attributen. Der Lebenszykluszustand bezieht sich nur auf ein einzelnes Attribut (oder eine kleine Gruppe von Attributen), das bestimmt, wo in seinem Lebenszyklus sich das BO 207 befindet. Die Lebenszykluszustände einer Aufgabe sind zum Beispiel Offen, Abgeschlossen, Zurückgesetzt oder Fehler. Geschäftsziele umfassen üblicherweise ein Bewegen eines BO zu seinem endgültigen Zustand hin (das heißt, Abgeschlossen für eine Aufgabe, Geschlossen für eine Ergänzung usw.).
  • Häufig sind Beschränkungen bei einer Bewegung eines BO durch seinen Lebenszyklus vorhanden. Eine Aufgabe kann sich zum Beispiel nur zu dem Fehlerzustand bewegen, nachdem sie zuerst Abgeschlossen oder Zurückgesetzt war. BOs stellen einen Mechanismus zum Sicherstellen, dass sie keine Lebenszyklusbeschränkungen verletzen, wenn sie sich von Zustand zu Zustand bewegen, bereit.
  • Ansatz
  • Ein BO 207 hat ein Verfahren zum Bewegen zu jedem seiner verschiedenen Lebenszykluszustände. Statt einfach eine öffentliche Variable zu zeigen, die den Lebenszykluszustand der Aufgabe enthält, zeigt das BO Verfahren wie beispielsweise Task.Clear(), Task.Complete() und Task.MarkInError(), die die Aufgabe zu einem neuen Zustand bewegen. Dieser Ansatz hindert die Aufgabe daran, einen ungültigen Wert für den Lebenszykluszustand zu enthalten, und macht es offensichtlich, was die Lebenszykluszustände einer Aufgabe sind.
  • Beispiel
    Figure 00580001
  • Figure 00590001
  • Geschäftslogik: Arbeiten auf Gruppen von
  • Geschäftsobjekten
  • Überblick
  • Manchmal fungiert ein BO 207 als ein Behälter für eine Gruppe von anderen BOs. Dies passiert, wenn mehrere BOs umfassende Operationen durchgeführt werden. Um zu schließen, stellt ein Anspruch zum Beispiel sicher, dass er keine offenen Ergänzungen oder Aufgaben hat. Es kann ein Verfahren auf dem Anspruchs-BO – CanClose() – vorhanden sein, das die das Schließen eines Anspruchs beschränkenden Geschäftsregeln auswertet und wahr oder falsch zurückgibt. Eine andere Situation kann ein Wiedergewinnen der offenen Aufgaben für einen Anspruch umfassen. Der Anspruch kann Schleifen durch seine Sammlung von Aufgaben ausführen, wobei er jede Aufgabe fragt, ob sie offen ist, und sie zu einer temporären Sammlung, die zu dem Aufrufer zurückgegeben wird, hinzufügt, falls dem so ist.
  • Beispiel
    Figure 00590002
  • Figure 00600001
  • Geschäftsobjektstrukturen
  • Überblick
  • Wenn ein BO 207 hinzugefügt oder aktualisiert wird, sendet es alle seine Attribute hinunter zu einer Serverkomponente 222 zum Schreiben in die Datenbank. Statt auf jedes Attribut in der Parameterliste der Funktionen auf dem CCA 208 und der Serverkomponente 222 explizit Bezug zu nehmen, werden alle die Attribute in einer einzelnen regelmäßigen Variantenanordnung gesendet. Diese regelmäßige Anordnung ist auch als eine Struktur bekannt.
  • Ansatz
  • Jedes bearbeitbare BO 207 hat ein Verfahren namens AsStruct, das die Mitgliedsvariablen des Objekts nimmt und sie in eine regelmäßige Variantenanordnung stellt. Der CCA 208 ruft dieses Verfahren auf einem BO 207 auf, bevor er das BO 207 hinunter zu der Serverkomponente 222 sendet, damit es hinzugefügt oder aktualisiert wird. Der Grund dafür, dass dies notwendig ist, besteht darin, dass obwohl Objektbezugnahmen per Wert über das Netz geleitet werden können, die Objekte selbst dies nicht können. Nur grundlegende Datentypen wie Ganzzahl bzw. Integer und Zeichenfolge bzw. String können per Wert zu einer Serverkomponente 222 gesendet werden. Eine VB-Aufzählung wird zum Benennen der freien Stellen der Struktur verwendet, so dass die Serverkomponente 222 einen symbolischen Namen statt eines Index zum Zugreifen auf Elemente in der regelmäßigen Anordnung verwenden kann. Es ist zu beachten, dass dies im Allgemeinen nur verwendet wird, wenn Hinzufügungen oder volle Aktualisierungen bei einem Geschäftsobjekt 207 durchgeführt werden.
  • In ein paar Fällen ist ein Grund zum Neuinstanziieren des BO 207 auf der Serverseite vorhanden. Das FromStruct-Verfahren tut genau das Gegenteil des AsStruct-Verfahrens und initialisiert das BO 207 aus einer regelmäßigen Variantenanordnung. Die Größe der als ein Parameter zu FromStruct geleiteten Struktur wird überprüft, um die Gewissheit zu erhöhen, dass sie eine gültige Struktur ist.
  • Wenn ein BO 207 eine Bezugnahme auf ein anderes BO 207 enthält, speichert das AsStruct-Verfahren den primären Schlüssel des BO 207, auf das Bezug genommen wird. Zum Beispiel enthält die Aufgabenstruktur eine AusführendenId, nicht das Auführenden-BO 207, auf das durch die Aufgabe Bezug genommen wird. Wenn das FromStruct-Verfahren auf die AusführendenId in der Aufgabenstruktur stößt, instanziiert es ein neues Ausführenden-BO und setzt die ID ein, wobei es den Rest des Ausführenden-BO leer lässt.
  • Beispiel
    Figure 00620001
  • Figure 00630001
  • Figure 00640001
  • Klonen von Geschäftsobjekten
  • Überblick
  • Häufig wird eine Kopie eines Geschäftsobjekts 207 ausgebildet. Ein Klonen ist eine Weise zum Realisieren dieser Art von Funktionalität, indem der Kopierprozess in dem BO 207 selbst eingekapselt wird. Steuerungseinheiten 206, die versuchsweise Änderungen bei einem Geschäftsobjekt 207 ausbilden müssen, bitten das ursprüngliche BO 207 einfach um einen Klon und bilden Änderungen bei dem Klon aus. Falls der Benutzer entscheidet, die Änderungen zu sichern, bittet die Steuerungseinheit 206 das ursprüngliche BO darum, sich anhand der bei dem Klon ausgebildeten Änderungen selbst zu aktualisieren.
  • Ansatz
  • Jedes BO 207 hat ein Klonverfahren zum Zurückgeben einer oberflächlichen Kopie von sich selbst. Eine oberflächliche Kopie ist eine Kopie, die keinen Kopien der anderen Objekte, auf die das BO 207 Bezug nimmt, sondern nur eine Kopie einer Bezugnahme auf die Objekte aufweist. Zum Klonen einer Aufgabe weist es zum Beispiel dem Klon kein brandneues Anspruchsobjekt zu; es weist dem Klon eine neue Bezugnahme auf das vorhandene Anspruchsobjekt zu. Sammlungen sind die einzige Ausnahme zu dieser Regel – sie werden immer vollständig kopiert, da sie Bezugnahmen auf andere BOs enthalten.
  • Jedes BO 207 hat auch ein UpdateFromClone-Verfahren, um es ihm zu ermöglichen, einen Klon zurück mit sich selbst zu "vereinigen", indem es seine Attribute derart ändert, dass sie zu den bei dem Klon ausgebildeten Änderungen passen.
  • Beispiel
    Figure 00650001
  • Figure 00660001
  • Halb fertige Geschäftsobjekte
  • Überblick
  • BOs 207 werden gelegentlich aus Leistungsgründen nur halb voll gefüllt. Dies wird für mehrere Tabellen umfassende Abfragen, die große Datensätze zurückgeben, getan. Ein Verwenden von halb fertigen BOs 207 kann ein fehleranfälliger Prozess sein, so dass es wesentlich ist, dass das halb fertige Ausbilden von BOs sorgfältig verwaltet und aufgenommen wird.
  • Bei den meisten Anwendungen sind zwei Arten von Fenstern vorhanden – Suchfenster und Bearbeitungs-/Detailfenster. Suchfenster sind die einzigen Fenster, die BOs 207 halb fertig ausbilden. Im Allgemeinen ist ein halb fertiges Ausbilden nur ein Problem, wenn ein ein völlig fertig ausgebildetes BO erwartendes Detailfenster ein halb fertiges BO von einem Suchfenster empfängt.
  • Ansatz
  • Detailfenster frischen die BOs 207, die durch die Suchfenster zu ihnen geleitet werden, ohne Rücksicht darauf, ob sie bereits völlig fertig waren oder nicht, auf. Dies widmet sich den mit einem Weitergeben von halb fertigen BOs verbundenen Problemen und hilft auch dabei, sicherzustellen, dass das BO 207 aktuell ist.
  • Dieser Ansatz erfordert einen anderen Typ von Verfahren (neben Gewinnen, Hinzufügen, Aktualisieren und Löschen) auf dem CCA 208: ein Auffrischungsverfahren. Dieses Verfahren ist einem Gewinnungsverfahren sehr ähnlich (faktisch ruft es das gleiche Verfahren auf der Serverkomponente auf), aber ist einzigartig, da es die Daten in Objekten, die bereits erzeugt sind, auffrischt. Die Steuerungseinheit 206 des Detailfensters ruft den passenden CCA 208 auf, wobei sie das aufzufrischende BO 207 weitergibt, und kann annehmen, dass das BO 207 aktuell und völlig fertig sein wird, wenn die Steuerung von dem CCA 208 zurückkehrt.
  • Dies kann nicht notwendig sein, falls zwei Fenster in sehr enger Beziehung zueinander stehen. Falls das erste Fenster das einzige Fenster ist, das jemals das zweite öffnet, ist es für das zweite Fenster notwendig, das durch das erste Fenster weitergegebene BO 207 aufzufrischen, falls es weiß, dass das BO 207 vollständig genug ausgebildet ist, um verwendet zu werden.
  • CCAs
  • CCAs 208 sind für ein Transformieren von Daten aus Zeilen und Spalten in einer Datensatzgruppe für Geschäftsobjekte 207 und für ein Ausführen von Aufrufen zu Serverkomponenten 222 im Auftrag von Steuerungseinheiten 206 verantwortlich.
  • Wiedergewinnen von Geschäftsobjekten
  • Überblick
  • Nach einem Bitten einer Komponente um ein Wiedergewinnen von Daten führt der CCA 208 die durch die Komponente zurückgegebenen Daten in Geschäftsobjekte 207, die durch die UI-Steuerungseinheit 206 verwendet werden.
  • Ansatz
  • Der Führungsprozess stellt sich dar wie folgt:
    CCAs 208 rufen GetRows bei der Datensatzgruppe auf, um eine Kopie ihrer Daten in einer regelmäßigen Variantenanordnung zu gewinnen, um die Datensatzgruppe möglichst bald freizugeben. Es ist ein Verfahren zum Koordinieren des Führens jeder durch die Komponente zurückgegebenen Datensatzgruppe vorhanden.
  • Bei dem Führungsprozess eines einzelnen Verfahrens wird nur eine Datensatzgruppe koordiniert. Es ist ein Verfahren zum Aufbauen eines BO aus einer einzelnen Zeile einer Datensatzgruppe vorhanden. Dieses Verfahren wird durch das Führungskoordinationsverfahren einmal für jede Zeile in der Datensatzgruppe aufgerufen.
  • Beispiel
    Figure 00680001
  • Figure 00690001
  • Figure 00700001
  • Auffrischen von Geschäftsobjekten
  • Überblick
  • Die Logik zum Auffrischen von BOs 207 ist der Logik zum Erzeugen derselben zuerst sehr ähnlich. Ein Verfahren "Auffrischen" ist einem Verfahren "Gewinnen" sehr ähnlich, aber muss BOs 207, die bereits vorhanden sind, verwenden, wenn es den Führungsprozess ausführt.
  • Beispiel
    Figure 00710001
  • Figure 00720001
  • Hinzufügen von Geschäftsobjekten
  • Überblick
  • Steuerungseinheiten 206 sind für ein Erzeugen und Besetzen von neuen BOs 207 verantwortlich. Zum Hinzufügen eines BO 207 zu der Datenbank muss die Steuerungseinheit 206 den CCA 208 aufrufen, wobei sie das hinzuzufügende Geschäftsobjekt 207 weitergibt. Der CCA 208 ruft das AsStruct-Verfahren auf dem BO 207 auf und leitet die BO-Struktur hinunter zu der zu sichernden Komponente. Er aktualisiert daraufhin das BO 207 mit der ID und dem Zeitstempel, die durch den Server erzeugt werden. Es ist zu beachten, dass das Verfahren auf dem CCA 208 nur das BO 207 aktualisiert.
  • Beispiel
    Figure 00720002
  • Figure 00730001
  • Aktualisieren von Geschäftsobjekten
  • Überblick
  • Der Aktualisierungsprozess ist sehr ähnlich zu dem Hinzufügungsprozess. Der einzige Unterschied besteht darin, dass die Serverkomponente nur einen Zeitstempel zurückgibt, da das BO bereits eine ID hat.
  • Beispiel
    Figure 00730002
  • Figure 00740001
  • Löschen von Geschäftsobjekten
  • Löschungsüberblick
  • Wie die Hinzufügungs- und die Aktualisierungsverfahren nehmen Löschungsverfahren ein Geschäftsobjekt 207 als einen Parameter und haben keinen Rückgabewert. Das Löschungsverfahren modifiziert das Objekt 207, das es löscht, nicht, da das Objekt bald verworfen werden wird.
  • Beispiel
    Figure 00740002
  • SERVERKOMPONENTE
  • Serverkomponenten 222 haben zwei Zwecke: ein Durchsetzen von Geschäftsregeln und ein Ausführen von Datenzugriffsoperationen. Sie werden zum Vermeiden eines Duplizierens von Logik zwischen Funktionen entworfen.
  • Entwerfen für eine Wiederverwendung
  • Einkapselung erzwingen
  • Jede Serverkomponente 222 kapselt eine einzelne Datenbanktabelle oder einen Satz von in enger Beziehung zueinander stehenden Datenbanktabellen ein. Serverkomponenten 222 wählen möglichst viele Daten aus einer einzelnen Tabelle aus oder modifizieren sie. Eine Komponente wählt gelegentlich aus einer Tabelle aus, die durch eine andere Komponente "besessen" oder eingekapselt wird, um eine Verbindungsstelle zu verwenden (aus Effizienzgründen). Eine Serverkomponente 222 arbeitet häufig mit anderen Serverkomponenten zusammen, um eine Geschäftstransaktion abzuschließen.
  • Verteilen von Logik zwischen mehreren Klassen
  • Falls die Komponente sehr groß wird, wird sie in mehr als eine Klasse gespalten. Wenn dies auftritt, wird sie in zwei Klassen aufgeteilt – eine für Geschäftsregeln und eine für einen Datenzugriff. Die Geschäftsregelnklasse realisiert die Schnittstelle der Komponente und nutzt die Datenzugriffsklasse zum Modifizieren von Daten wie benötigt.
  • Beispiel
    Figure 00750001
  • Figure 00760001
  • FEHLERHANDHABUNG
  • Allgemeine Informationen
  • Mit der Ausnahme von "Class_Initialize", "Class_Terminate" und in einer FehlerHandhabungseinheit aufgerufenen Verfahren hat jede Funktion oder jedes Unterprogramm eine durch einen Benutzer definierte Anweisung 'Bei Fehler Gehe Zu' bzw. 'On Error Go To'. Die erste Zeile in jeder Prozedur ist: Bei Fehler Gehe Zu FehlerHandhabungseinheit bzw. On Error Go To ErrorHandler. Einer Zeile nahe dem Ende der Prozedur ist ein Label "ErrorHandler" zugewiesen. (Es ist zu beachten, dass jede Prozedur eine mit einem Label "ErrorHandler" versehene Zeile haben kann, da Zeilenlabels in VB 5.0 einen Prozedurbereich haben). Dem Label ErrorHandler geht eine Anweisung Exit Sub oder Exit Function voraus, um ein Ausführen des Fehlerhandhabungscodes, wenn kein Fehler vorhanden ist, zu vermeiden.
  • Fehler werden basierend auf der Ebene des Moduls in der Anwendung verschieden gehandhabt (das heißt, Benutzerschnittstellenmodule sind für ein Anzeigen von Fehlernachrichten für den Benutzer verantwortlich).
  • Alle Module nutzen eine technische Architektur aus, um Nachrichten zu protokollieren. Clientmodule, die bereits eine Bezugnahme auf die Architektur haben, rufen das Log-Manager-Objekt direkt auf. Da Servermodule üblicherweise keine Bezugnahme auf die Architektur haben, verwenden sie die globale LogMessage()-Funktion, der in jeder Serverkomponente entsprochen wird.
  • Irgendwelche Fehler, die in einer Serverkomponente 222 vorgebracht werden, werden durch das Aufrufen der UI-Steuerungseinheit 206 gehandhabt. Dies stellt sicher, dass der Benutzer passende von dem Fehler benachrichtigt wird und dass Geschäftsfehler nicht in nicht gehandhabte fatale Fehler umgesetzt werden.
  • Alle unerwarteten Fehler werden durch eine allgemeine Fehlerhandhabungsfunktion bei dem globalen Architekturmodul gehandhabt, um die Anwendung immer taktvoll auszuschalten.
  • Serverkomponentenfehler
  • Die FehlerHandhabungseinheit für jedes Dienstmodul enthält eine Fall-Anweisung zum Überprüfen auf alle vorausgesehenen Fehler hin. Falls der Fehler kein behebbarer Fehler ist, besteht die Logik zu seiner Handhabung darin, zuerst MTS durch ein Aufrufen von GetObjectContext.SetAbort() über den Fehler zu berichten. Als Nächstes wird die globale LogMessage()-Funktion aufgerufen, um die für Unterstützungspersonal der Stufe eins bestimmte kurze Beschreibung zu protokollieren. Daraufhin wird die LogMessage()-Funktion ein zweites Mal aufgerufen, um die detaillierte Beschreibung des Fehlers für Unterstützungspersonal einer höheren Stufe zu protokollieren. Schließlich wird der Fehler neu vorgebracht, so dass die aufrufende Funktion die fehlgeschlagene Operation kennen wird.
  • Eine vorgegebene Fall-Bedingung wird codiert, um irgendwelche unerwarteten Fehler zu handhaben. Dies protokolliert den durch VB erzeugten Fehler und bringt ihn daraufhin vor. Eine Codeprobe ist nachstehend bereitgestellt:
    Es folgt ein Beispiel dafür, wie eine Fehlerhandhabung in der Aufgabenkomponente realisiert wird, wenn ein Versuch gemacht wird, eine Aufgabe einem Ausführenden, der nicht vorhanden ist, neu zuzuweisen. SQL zum Neuzuweisen einer Aufgabe zu einem nicht vorhandenen Ausführenden auszuführen erzeugt einen Fehler der Verletzung der referentiellen Integrität, der in dieser Fehlerhandhabungseinheit eingefangen wird:
  • Figure 00790001
  • Figure 00800001
  • CCAs, CCIs, Geschäftsobjekte und Formulare
  • Alle CCIs, CCAs, Geschäftsobjekte und Formulare bringen jeden Fehler, der erzeugt wird, vor. Ein Codemuster ist nachstehend bereitgestellt:
  • Figure 00810001
  • Benutzerschnittstellensteuerungseinheitsfehler
  • Die Benutzerschnittstellensteuerungseinheiten 206 handhaben irgendwelche erzeugten und von den unteren Ebenen der Anwendung hinauf geleiteten Fehler. UI-Module sind dafür verantwortlich, welche Fehler auch immer durch Serverkomponenten 222 vorgebracht werden könnten durch ein Anzeigen eines Nachrichtenfelds für den Benutzer zu handhaben.
  • Jeder in den UIs erzeugte Fehler wird auch in einem Dialogfeld für den Benutzer angezeigt. Jeder auf dem Client eingeleitete Fehler wird unter Verwendung der LogMessage()-Prozedur protokolliert. Auf dem Server eingeleitete Fehler werden bereits protokolliert worden sein und müssen daher nicht wieder protokolliert werden.
  • Alle unerwarteten Fehler werden durch ein allgemeines Fehlerverfahren bei dem globalen Architekturmodul eingefangen. Abhängig von dem von dieser Funktion zurückgegebenen Wert kann die Steuerungseinheit bei der Anweisung, die den Fehler ausgelöst hat, fortsetzen, bei der nächsten Anweisung fortsetzen, ihre Stilllegungsfunktion aufrufen, um sich selbst auszuschalten, oder ein Ausschaltverfahren auf dem Anwendungsobjekt aufrufen, um die ganze Anwendung auszuschalten.
  • Es werden keine Fehler von dieser Ebene der Anwendung vorgebracht, da Steuerungseinheiten alle Fehler handhaben. Eine Codeprobe einer Steuerungseinheitsfehlerhandhabungseinheit ist nachstehend bereitgestellt:
  • Figure 00820001
  • Figure 00830001
  • LOKALISIERUNG
  • Die CBAM-Anwendung ist derart aufgebaut, dass sie mit einer minimalen Anstrengung oder Wandlung für verschiedene Sprachen und Länder an lokale Gegebenheiten angepasst bzw. lokalisiert werden kann.
  • Anforderungen und Bereich
  • Die CBAM-Architektur stellt eine Unterstützung für gewisse Lokalisierungsmerkmale bereit:
    Lokalisierbare Betriebsmittelablage;
    Flexibler Benutzerschnittstellenentwurf;
    Datumsformatlokalisierung; und
    Beanspruchung von Fensterbetriebssystemlokalisierungsmerkmalen.
  • Lokalisierungsansatzkontrollliste
    Figure 00840001
  • Lokalisierbare Buchstabenablage
  • Die CBAM-Anwendung hat eine Infrastruktur zum Unterstützen von mehreren Sprachen. Die Architektur fungiert über ihren Codetabellenansatz als eine zentralisierte Buchstabenablage.
  • Die Codetabellen haben eine Lokalisierung im Sinn. Jede Zeile in der Codetabelle enthält eine zugeordnete Sprachidentifizierung. Über die Sprachidentifizierung kann ein beliebiger gegebener Code Werte von einer beliebigen Sprache unterstützen.
  • Flexible Schnittstelle 400
  • Eine flexible Benutzerschnittstelle 400 und ein flexibler Code machen eine Anpassung leicht. Die 4 veranschaulicht, wie verschiedene Sprachen neu gestrichen und neu kompiliert werden. Es werden zum Beispiel sowohl eine englische UI 404 als auch eine französische UI 406 leicht untergebracht. Dies bringt eine minimale Anstrengung mit sich, da beide UIs die gleiche Kerncodebasis 402 gemeinsam nutzen. Aktualisierungen bei den UIs sind lediglich eine oberflächliche Änderung.
  • Generische Graphiken werden verwendet und eine Überfüllung wird vermieden, um eine Benutzerschnittstelle, die leicht zu lokalisieren ist, zu erzeugen.
  • Datenlokalisierung
  • Sprachlokalisierungseinstellungen beeinflussen die Weise, auf die Daten auf UIs (Benutzerschnittstellen) angezeigt werden. Das Vorgabesystemanzeigeformat ist für verschiedene Sprachen/Länder verschieden. Zum Beispiel:
    Englisch (Vereinigte Staaten von Amerika) zeigt "mm/dd/yy" (zum Beispiel "05/16/98") an.
    Englisch (Vereinigtes Königreich) zeigt "dd/mm/yy" (zum Beispiel "16/05/98") an.
  • Die UI der vorliegenden Erfindung wendet eine Anzahl von Datumssteuerungen Dritter einschließlich Sheridan Calendar Widgets (von Sheridan Software) an, die es Entwicklern ermöglichen, vordefinierte Eingabemasken für Daten einzustellen (über die Eigenschaftsseiten der Steuerungen; die Eigenschaft ist in diesem Fall "Maske").
  • Obwohl die Maskeneigenschaft beeinflusst werden kann, wird die Vorgabeeinstellung vorzugsweise akzeptiert (die Vorgabeeinstellung für Maske ist "0 – Systemvorgabe"; sie wird zur Entwurfszeit eingestellt). Ein Akzeptieren der Vorgabesystemeinstellungen beseitigt den Bedarf an einem Codieren für mehrere Schauplätze (mit einigen möglichen Ausnahmen), stört keine intrinsischen Funktionen von Visual Basic wie beispielsweise DateAdd und ermöglicht es, Daten als Zeichenfolgen zur Verwendung in SQL zu formatieren.
  • Das nachstehend veranschaulichte Testprogramm zeigt, wie ein das englische (Vereinigtes Königreich) Vorgabesystemdatenformat verwendendes Datum zu einem benutzerdefinierten Format (in diesem Fall eine Zeichenfolgenkonstante zur Verwendung mit DB2-SQL-Anweisungungen) neu formatiert wird:
  • Figure 00860001
  • Figure 00870001
  • Wirksames Einsetzen von Fensterbetriebssystem
  • Die CBAM-Architektur zeigt Schnittstellenverfahren auf dem RegistryService-Objekt zum Zugreifen auf schauplatzspezifische Werte, die von dem Steuerungsfeld eingestellt werden.
  • Die Architektur zeigt eine API von dem RegistryService-Objekt, die einen Zugriff auf alle die in dem Steuerungsfeld verfügbaren Informationen ermöglicht. Nachstehend ist die Signatur der API gezeigt:
    GetRegionalInfo(Info As RegionalInfo) As String
    Wobei RegionalInfo jeder der Werte in der nachstehenden Tabelle sein kann:
  • Figure 00870002
  • Figure 00880001
  • Beispiel für Gewinnen von RegionalInfo:
    Figure 00880002
  • Logische Arbeitseinheit
  • Das Muster der logischen Arbeitseinheit (LUW) ermöglicht eine Trennung des Anliegens zwischen UI-Steuerungseinheiten 206 und Geschäftslogik.
  • Überblick
  • Wenn ein Benutzer ein Fenster öffnet, Änderungen ausbildet und OK oder Sichern anklickt, wird normalerweise eine Serverkomponente 222 aufgerufen, um eine Transaktion, die die Änderungen des Benutzers in der Datenbank sichern wird, auszuführen. Hierdurch kann es gesagt werden, dass das Fenster die Grenze der Transaktion definiert, da die Transaktion übertragen wird, wenn das Fenster sich schließt.
  • Das LUW-Muster ist verwendbar, wenn Datenbanktransaktionen sich über Fenster erstrecken. Ein Benutzer beginnt zum Beispiel, Daten in einem Fenster zu bearbeiten, und öffnet daraufhin ohne ein Sichern ein anderes Fenster und beginnt ein Bearbeiten von Daten in dem Fenster, wobei der Sicherungsprozess mehrere Fenster umfasst. Keine Fenstersteuerungseinheit 206 kann den Sicherungsprozess verwalten, da Daten von beiden Fenstern als ein Teil einer unteilbaren Arbeitseinheit gesichert werden müssen. Stattdessen wird ein LUW-Objekt eingeführt, um den Sicherungsprozess zu verwalten.
  • Die LUW fungiert als eine Art von "Einkaufstasche". Wenn eine Steuerungseinheit 206 ein Geschäftsobjekt 207 modifiziert, legt sie es in die Tasche, die später zu bezahlen (sichern) ist. Sie kann die Tasche einer anderen Steuerungseinheit 206 geben, um das Einkaufen zu beenden (mehr Objekte zu modifizieren), und daraufhin einer dritten Steuerungseinheit geben, die bezahlt (die LUW um ein Einleiten des Sicherns bittet).
  • Ansatz
  • Steuerungseinheiten 206 können verschiedene Stufen des LUW-"Bewusstseins" haben:
    Erfordert Neue: erzeugt immer eine neue LUW;
    Erfordert: erfordert eine LUW und erzeugt nur eine neue LUW, falls eine nicht durch die aufrufende Steuerungseinheit weitergegeben wird;
    Erfordert Vorhandene: erfordert eine LUW, aber erzeugt keine neue LUW, falls eine nicht durch die aufrufende Steuerungseinheit weitergegeben wird. Bringt einen Fehler vor, falls keine LUW weitergegeben wird; und
    Nicht Unterstützt: ist nicht dazu in der Lage, eine LUW zu verwenden.
  • Steuerungseinheiten 206, die immer eine neue LUW erfordern, erzeugen die LUW während der Initialisierung in ihrer ArchInitClass-Funktion. Sie können wählen, ob andere Fenster in ihre LUW einzubeziehen sind oder nicht. Falls es für ein anderes Fenster wünschenswert ist, in eine vorhandene LUW einbezogen zu werden, gibt die Steuerungseinheit 206, die die LUW besitzt, eine Bezugnahme auf die LUW weiter, wenn sie das Anwendungsobjekt 202 aufruft, um das zweite Fenster zu öffnen. Steuerungseinheiten 206, die eine LUW erfordern oder eine vorhandene LUW erfordern akzeptieren die LUW als einen Parameter in der ArchInitClass-Funktion.
  • LUWs enthalten alle die notwendige Logik zum Persistentmachen ihrer "Inhalte" – der modifizierten BOs 207. Sie handhaben ein Aufrufen von Verfahren auf dem CCA 208 und ein Aktualisieren der BOs 207 mit neuen IDs und/oder Zeitstempeln.
  • ARCHITEKTUR-API-HIERARCHIE
  • Es folgt ein Überblick des Architekturobjektmodels einschließlich einer Beschreibung jedes Verfahrens und der Parameter, die es akzeptiert. Zusätzliche Abschnitte befassen sich detaillierter mit den Konzepten hinter spezifischen Bereichen (Speichern von Code im Cache, Nachrichtenprotokollierung und Datenzugriff).
  • Architekturobjekt
  • Die 5 stellt die derzeitigen Eigenschaften bei dem Architekturobjekt 200 dar.
  • Das Folgende sind sich auf dem Architekturobjekt 200 befindende APIs, die entweder eine wiedergewonnene oder eine erzeugte Instanz eines Objekts zurückgeben, was die folgenden Schnittstellen realisiert:
    CodesMan() 500;
    TextMan() 502;
    IdMan() 504;
    RegMan() 506;
    LogMan() 508;
    ErrMan() 510;
    UserMan() 512; und
    SecurityMan() 514.
  • AsMsgStruct()
  • Dieses Verfahren auf dem Architekturobjekt gibt eine Variantenstruktur zurück, um eine Fernnachricht weiterzureichen.
  • Syntax:
    • Public Function AsMsgStruct() As Variant
    • End Function
  • Beispiel:
    • Dim vMsg As Variant
    • vMsg = objArch.AsMsgStruct
  • CodesMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens CodesMan 500 befindende APIs:
    CheckCacheFreshness();
    FillControl(ctlControl, ncategory, nFillType, [nCodeStatus], [colAssignedCodes]);
    FilterCodes(colAllCodes, nCodeStatus);
    GetCategoryCodes(nCategory);
    GetCodeObject(nCategory, sCode);
    GetResourceString(lStringId);
    GetServerDate();
    RefreshCache();
    RemoveValidDates(sCode, colPassedInAssignedCodes); und
    SetServerDate(dtServerDate).
  • CheckCacheFreshness()
  • Überprüft, ob der Cache abgelaufen ist, und falls dem so ist, wird aufgefrischt.
  • Syntax:
    • Private Sub CheckCacheFreshness()
    • End Sub
  • Beispiel:
    • CheckCacheFreshness
  • FillControl()
  • Diese API wird zum Füllen von Listenfeldern oder Kombinationsfeldern mit Werten aus einer Liste von CodierungDecodierungen bzw. CodeDecodes verwendet. Gibt eine Sammlung für nachfolgende Nachschlagevorgänge zu Codeobjekten, die zum Füllen von Steuerungen verwendet werden, zurück.
  • Syntax:
    • Public Function FillControl(ctlControl As Object, nCategory As CodeDecodeCats, nFillType As CodeDecodeLengths, Optional nCodeStatus As CodeDecodeFilters = cmValidCodes, Optional colAssignedCodes As CCollection) As CCollection
    • End Function
  • Parameter:
    • ctlControl: eine Bezugnahme auf ein eingeleitetes Listenfeld oder Kombinationsfeld.
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat. Einzelne der gültigen Konstanten schließen ein: cmCatTaskType = 1 cmCatSource cmCatTaskStatus
    • nFillType: das Attribut des CodeDecode, das du füllen möchtest. Einzelne der gültigen Werte schließen ein: cmCode cmShortDecode cmLongDecode
    • nCodeStatus: optionaler Wert, der die CodeDecodes gemäß ihren effektiven Daten und Ablaufdaten filtert. Einige der gültigen Konstanten schließen ein: cmAllCodes Anhängige + Gültige + Abgelaufene Codes cmPendingCodes Codes, deren effektives Datum größer als das derzeitige Datum ist cmValidCodes Nicht Anhängige oder Abgelaufene Codes
    • colAssignedCodes: verwendet, wenn eine Steuerung gefüllt wird, die zugewiesene Werte füllen und einschließen sollte.
  • Beispiel:
    • ' Eine Instanzvariable für Zustandssammlung auf Objekt vereinbaren
    • Private colStates As CCollection
    • ' FillControll-API aufrufen und lokale Sammlung inst var auf Sammlung von Codes, die zum Füllen der Steuerung bzw. controll verwendet wurden, einstellen. Diese Sammlung wird für nachfolgende Nachschlagevorgänge verwendet.
    • Set colStates =
    • objArch.CodesMan.FillControl(frmCurrentForm.choStates,
    • cmCatStates, cmLongDecode)
  • FilterCodes()
  • Gibt eine Sammlung von Code/Decodes zurück, die unter Verwendung ihrer effektiven Daten und Ablaufdaten basierend darauf, welcher nCodeStatus von dem fillcontrol-Verfahren weitergegeben wird, gefiltert werden.
  • Syntax:
    • Private Function FilterCodes(colAllCodes As CCollection, nCodeStatus As CodeDecodeFilters) As CCollection
    • End Function
  • Parameter:
    • colAllCodes:
    • nCodeStatus:
  • Beispiel:
    • Set colFilteredCodes = FilterCodes(colCodes, nCodeStatus
  • GetCategoryCodes()
  • Gibt eine Sammlung von Ccode-Objekten, denen eine gültige Kategorie zugewiesen ist, zurück.
  • Syntax:
    • Public Function GetCategoryCodes(nCategory As CodeDecodeCats) As CCollection
    • End Function
  • Parameter:
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat.
  • Beispiel:
    Figure 00950001
  • Figure 00960001
  • GetCodeObject()
  • Gibt ein gültiges CCode-Objekt, dem eine spezifische Kategorie und ein spezifischer Code zugewiesen sind, zurück.
  • Syntax:
    • Public Function GetCodeObject(nCategory As CodeDecodeCats, sCode As String) As CCode
    • End Function
  • Parameter:
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat.
    • sCode: eine Zeichenfolge, die das Codeattribut des CodeDecode-Objekts angibt.
  • Beispiel:
    • frmCurrentForm.lblState = objArch.CodesMan.GetCodeObject(cmCatStates, "IL").LongDecode
  • GetResourceString()
  • Gibt eine Zeichenfolge aus der Betriebsmitteldatei, der eine spezifische Zeichenfolgen-ID zugewiesen ist, zurück.
  • Syntax:
    • Private Function GetResourceString(lStringId As Long) As String
    • End Function
  • Parameter:
    • lStringId: die mit der Zeichenfolge in der Betriebsmitteldatei verbundene id.
  • Beispiel:
    • sMsg = arch.CodesMan.GetResourceString (CLng(vMessage))
  • GetServerDate()
  • Gibt das Datum von dem Server zurück.
  • Syntax:
    • Private Function GetServerDate() As Date
    • End Function
  • Beispiel:
    • SetServerDate CCA.GetServerDate
  • RefreshCache()
  • Frischt alle die Codeobjekte in dem Cache auf.
  • Syntax:
    • Private Sub RefreshCache()
    • End Sub
  • Beispiel:
    • m_Cache.RefreshCache
  • RemoveValidCodes()
  • Entfernt alle gültigen Codes aus der eingeleiteten Sammlung von zugewiesenen Codes, was verwendet wird, um zu sehen, welche Codes zugewiesen und nicht gültig sind.
  • Syntax:
    • Private Sub RemoveValidCodes(sCode As String, colPassedInAssignedCodes As CCollection)
    • End Sub
  • Parameter:
    • sCode: Name von Code
    • colPassedInAssignedCodes: bereits verwendete Codes.
  • Beispiel:
    • RemoveValidCodes codCode.Code, colPassedInAssignedCodes
  • SetServerDate()
  • Stellt das Serverdatum ein.
  • Syntax:
    • Private Sub SetServerDate(dtServerDate As Date)
    • End Sub
  • Parameter:
    • dtServerDate: Datum von Server.
  • Beispiel:
    • SetServerDate CCA.GetServerDate
  • TextMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens TextMan 502 befindende APIs.
    PairUpAposts();
    PairUpAmps(); und
    MergeParms().
  • PairUpAposts()
  • Ordnet Apostrophe in der weitergegebenen Zeichenfolge paarweise an.
  • Syntax:
    • Public Function PairUpAposts(sOriginalString As String) As String
    • End Function
  • Parameter:
    • sOriginalString: durch den Aufrufer eingeleitete Zeichenfolge
  • Beispiel:
    • Dim sString As String
    • sString = objArch.TextMan.PairUpAposts("This is Monika's string")
    • ' Erwartete Rückgabe: sString = "This is Monika''s string"
  • PairUpAmps()
  • Ordnet Et-Zeichen in der weitergegebenen Zeichenfolge paarweise an.
  • Syntax:
    • Public Function PairUpAmps(sOriginalString As String) As String
    • End Function
  • Parameter:
    • sOriginalString: durch den Aufrufer eingeleitete Zeichenfolge
  • Beispiel:
    • Dim sString As String
    • sString = objArch.TextMan.PairUpAmps("Forms&Corr")
    • ' Erwartete Rückgabe: sString = "Forms&&Corr"
  • MergeParms()
  • Vereinigt Zeichenfolge mit der Sammlung von weitergegebenen Parametern.
  • Syntax:
    • Public Function MergeParms(sString As String, colParms As CCollection) As String
    • End Function
  • Parameter:
    • sOriginalString: durch den Aufrufer eingeleitete Zeichenfolge
    • colParms As Ccollection: Sammlung der durch den Aufrufer eingeleiteten Parameter
  • Beispiel:
    • Dim sString As String
    • sString = obArch.TextMan.MergeParms(sString, colParms)
  • IdMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens IdMan 504 befindende APIs:
    GetGUID();
    GetSequenceID();
    GetTimeStamp();
    GetTrackingNbr(); und
    GetUniqueId().
  • GetGUID()
  • Syntax:
    • Public Function GetGUID()
    • End Function
  • Beispiel:
    • Dim vNewGuid As Variant
    • vNewGuid = objArch.IdMan.GetGUID
  • GetSequenceId()
  • Syntax:
    • Public Function GetSequenceId(sTemplateType As CounterName) As String
    • End Function
  • Parameter:
    • sTemplateType: die die eine Sequenz-id erfordernde Vorlage bestimmende Zeichenfolge (das heißt cmCountFC = Forms & Corr)
  • Beispiel:
    • frmCurrentForm.txtTemplateNumber = objArch.IdMan.GetSequenceId(cmCountFC)
  • GetTimeStamp()
  • Syntax:
    • Public Function GetTimeStamp()
    • End Function
  • Beispiel:
    • Dim nNewTimeStamp As Long
    • nNewTimeStamp = objArch.IdMan.GetTimeStamp
  • GetTrackingNbr()
  • Syntax:
    • Public Function GetTrackingNbr()
    • End Function
  • Beispiel:
    • Set objTechArch = New CTechArch
    • sUniqueTrackNum = obj TechArch.IdMan.GetTrackingNbr
  • GetUniqueId()
  • Syntax:
    • Public Function GetUniqueId()
    • End Function
  • Beispiel:
    • Dim vUid As Variant
    • vNewUid = objArch.IdMan.GetUniqueId
  • RegMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens RegMan 506 befindende APIs:
    GetCacheLife();
    GetClientDSN();
    GetComputerName();
    GetDefaultAndValidate();
    GetFCArchiveDirectory();
    GetFCDistributionDirectory();
    GetFCMasterDirectory();
    GetFCUserDirectory();
    GetFCWorkingDirectory();
    GetHelpPath();
    GetLocalInfo();
    GetLogLevel();
    GetRegionalInfo();
    GetRegValue();
    GetServerDSN();
    GetSetting();
    GetTimerLogLevel();
    GetTimerLogPath(); und
    GetUseLocalCodes().
  • GetCacheLife()
  • Syntax:
    • Public Function GetCacheLife() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetCacheLife
  • GetClientDSN()
  • Syntax:
    • Public Function GetClientDSN() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetClientDSN
  • GetComputerName()
  • Syntax:
    • Public Function GetComputerName() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetComputerName
  • GetDefaultAndValidate()
  • Syntax:
    • Private Function GetDefaultAndValidate(sKey As String) As String
    • End Function
  • Parameter:
    • sKey: der Schlüssel in der Registrierdatenbank, von der der Benutzer anfordert (das heißt: Hilfe-Pfad bzw. Help Path)
  • Beispiel:
    • Dim sDefault As String
    • sDefault = objArch.RegMan.GetDefaultAndValidate(sKey)
  • GetFCArchiveDirectory()
  • Syntax:
    • Public Function GetFCArchiveDirectory() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetFCArchiveDirectory
  • GetFCDistributionDirectory()
  • Syntax:
    • Public Function GetFCDistributionDirectory() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetFCDistributionDirectory
  • GetFCMasterDirectory()
  • Syntax:
    • Public Function GetFCMasterDirectory() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetFCMasterDirectory
  • GetFCUserDirectory()
  • Syntax:
    • Public Function GetFCUserDirectory() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetFCUserDirectory
  • GetFCWorkingDirectory()
  • Syntax:
    • Public Function GetFCWorkingDirectory() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetFCWorkingDirectory
  • GetHelpPath()
  • Syntax:
    • Public Function GetHelpPath() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetHelpPath
  • GetLocalInfo()
  • Syntax:
    • Public Function GetLocalInfo() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetLocalInfo
  • GetLogLevel()
  • Syntax:
    • Public Function GetLogLevel() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetLogLevel
  • GetRegionalInfo()
  • Ermöglicht einen Zugriff auf alle schauplatzspezifischen Werte, die von dem Steuerungsfeld eingestellt werden.
  • Syntax:
    • Public Function GetRegionalInfo(Info As RegionalInfo) As String
    • End Function
  • Parameter:
    • Info: die regionalen Informationen enthaltende Zeichenfolge. Einige der gültigen Konstanten schließen ein: • cmLanguageId = &H1 ' Sprach-id • cmLanguageLocalized = &H2 ' Lokalisierter Name der Sprache • cmLanguageEnglish = &H1001 ' Englischer Name der Sprache • cmLanguageAbbr = &H3 ' Abgekürzter Sprachname • cmLanguageNative = &H4 ' Natürlicher Name der Sprache
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetRegionalInfo
  • GetRegValue()
  • Syntax:
    • Public Function GetRegValue() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetRegValue
  • GetServerDSN()
  • Syntax:
    • Public Function GetServerDSN() As String
    • End Function
  • Beispiel:
    • s As String
    • s = objArch.RegMan.GetServerDSN
  • GetSetting()
  • Einstellung aus der Registrierdatenbank gewinnen.
  • Syntax:
    • Public Function GetSetting(sKey As String) As String
    • End Function
  • Parameter:
    • sKey: der Schlüssel in der Registrierdatenbank, von der der Benutzer anfordert (das heißt: Help Path)
  • Parameter:
    • GetHelpPath = GetSetting(cmRegHelpPathKey)
  • GetTimerLogLevel()
  • Syntax:
    • Public Function GetTimerLogLevel() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetTimerLogLevel
  • GetTimerLogPath()
  • Syntax:
    • Public Function GetTimerLogPath() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetTimerLogPath
  • GetUseLocalCodes()
  • Syntax:
    • Public Function GetUseLocalCodes() As String
    • End Function
  • Beispiel:
    • Dim s As String
    • s = objArch.RegMan.GetUseLocalCodes
  • LPSTRToVBString()
  • Extrahiert eine VB-Zeichenfolge aus einem Puffer, der eine mit Null beendete Zeichenfolge enthält.
  • Syntax:
    • Private Function LPSTRToVBString$(ByVal s$)
    • End Function
  • LogMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens LogMan 508 befindende APIs:
    LogMessage();
    WriteToDatabase(); und
    WriteToLocalLog().
  • LogMessage()
  • Wird zum Protokollieren der Nachricht verwendet. Diese Funktion wird basierend auf ihrem Ernst und der Protokollstufe von vMsg bestimmen, wo die Nachricht protokolliert werden sollte, wenn überhaupt.
  • Syntax:
    Figure 01120001
  • Parameter:
    • vMsg: die Standardarchitekturnachricht
    • lSeverity: der Ernst der Nachricht
    • sClassName: der Name der die Nachricht protokollierenden Klasse
    • sMethodName: der Name des die Nachricht protokollierenden Verfahrens
    • sVersion: die Version der Binärdatei (EXE oder DLL), die das die Nachricht protokollierende Verfahren enthält
    • lErrorNum: die Nummer des derzeitigen Fehlers
    • sText: ein optionaler Parameter, der den Text der Nachricht enthält. Falls er weggelassen wird, wird der Text in einer Zeichenfolgendatei nachgeschlagen, oder die generische VB-Fehlerbeschreibung wird verwendet.
  • Beispiel:
    Figure 01130001
  • WriteToDatabase()
  • Wird zum Protokollieren der Nachricht in der Datenbank auf dem Server unter Verwendung des CLoggingComp verwendet. Diese Funktion gibt die TrackingId, die durch das CLoggingObject erzeugt wird, zurück.
  • Syntax:
    • Private Sub WriteToDatabase (vMsg As Variant, msgToLog As CMessage)
    • End Sub
  • Parameter:
    • vMsg: die Standardarchitekturnachricht
    • msgToLog: ein Parameter, der den Text der Nachricht enthält.
  • Beispiel:
    • If msgToLog.IsLoggableAtLevel(m_lLocalLogLevel) Then WriteToDatabase vMsg, msgToLog
    • End If
  • WriteToLocalLog()
  • Wird zum Protokollieren der Nachricht in entweder einer Einfachdatei in dem Fall von Windows 95 oder dem NT-Ereignisprotokoll in dem Fall von Windows NT verwendet.
  • Syntax:
    • Private Sub WriteToLocalLog(msgToLog As CMessage)
    • End Sub
  • Parameter:
    • msgToLog: ein Parameter, der den Text der Nachricht enthält.
  • Beispiel:
  • ErrorHandler:
    • WriteToLocalLog msgToLog
    • End Sub
  • ErrMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens ErrMan 510 befindende APIs:
    HandleError();
    RaiseOriginal();
    ResetError(); und
    Update().
  • HandleError()
  • Dieses Verfahren wird zu der allgemeinen Fehlerhandhabungseinheit in MArch.bas durchgeleitet.
  • Syntax:
    • Public Function HandleError (vMsg As Variant, nCompType As CompType, sClassName As String, sMethodname As String) As ErrResumeCodes
    • End Sub
  • Parameter:
    • vMsg: allgemeine Architekturinformationen
    • nCompType: enthält Ranginformationen (Client oder Server)
    • sClassName: Klasse, die den Fehler vorgebracht hat.
    • sMethodName: Verfahren, das den Fehler vorgebracht hat.
  • RaiseOriginal()
  • Dieses Verfahren wird zum Rücksetzen des Fehlerobjekts und Vorbringen verwendet.
  • Syntax:
    • Public Sub RaiseOriginal()
    • End Sub
  • Beispiel:
    • objArch.ErrMan.Raiseoriginal
  • ResetError()
  • Dieses Verfahren wird zum Rücksetzen von Attributen verwendet.
  • Syntax:
    • Public Sub ResetError()
    • End Sub
  • Beispiel:
    • objArch.ErrMan.ResetError
  • Update()
  • Dieses Verfahren wird zum Aktualisieren von Attributen auf die Werte des globalen Fehlerobjekts von VB verwendet.
  • Syntax:
    • Public Sub Update()
    • End Sub
  • Beispiel:
    • objArch.ErrMan.Update
  • UserMan
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens UserMan 512 befindende APIs.
    UserId;
    EmployeeId;
    EmployeeName;
    EmployeeFirstName;
    EmployeeLastName;
    EmployeeMiddleInitial;
    GetAuthorizedEmployees;
    IsSuperOf();
    IsRelativeOf(); und
    IsInRole().
  • UserId()
  • Syntax:
    • Public Property Get UserId() As String
    • End Property
  • Beispiel:
    • Dim sNewUserId As String
    • sNewUserId = objArch.Useman.UserId
  • EmployeeId()
  • Syntax:
    • Public Property Get EmployeeId() As String
    • End Property
  • Beispiel:
    • Dim sNewEmployeeId As String
    • sNewEmployeeId = objArch.Userman.EmployeeId
  • EmployeeName()
  • Syntax:
    • Public Property Get EmployeeName() As String
    • End Property
  • Beispiel:
    • Dim sName As String
    • sName = objArch.UserMan.EmployeeName
  • EmployeeFirstName()
  • Syntax:
    • Public Property Get EmployeeFirstName() As String
    • End Property
  • Beispiel:
    • Dim sFName As String
    • sFName = objArch.UserMan.EmployeeFirstName
  • EmployeeLastName()
  • Syntax:
    • Public Property Get EmployeeLastName() As String
    • End Property
  • Beispiel:
    • Dim sLName As String
    • sLName = objArch.UserMan.EmployeeLastName
  • EmployeeMiddleInitial()
  • Syntax:
    • Public Property Get EmployeeMiddleInitial() As String
    • End Property
  • Beispiel:
    • Dim sMI As String
    • sMI = objArch.UserMan.EmployeeMiddleInitial
  • GetAuthorizedEmployees()
  • Erzeugt eine Sammlung der überwachten Personen des Benutzers aus dem Verzeichnis und gibt GetAuthorizedEmployees zurück – Sammlung von autorisierten Angestellten.
  • Syntax:
    • Public Function GetAuthorizedEmployees() As CCollection
    • End Function
  • Beispiel:
    • Dim colAuth As Collection
    • colAuth = objArch.UserMan.GetAuthorizedEmployees
  • IsSuperOf()
  • Überprüft, ob der derzeitige Benutzer ein Vorgesetzter des eingeleiteten Benutzers ist.
  • Syntax:
    • Public Function IsSuperOf(sEmpId As String) As Boolean
    • End Function
  • Parameter:
    • sEmpId: Zeichenfolge, die eine Angestellten-ID-Nummer enthält
  • Beispiel:
    • Dim bIsSuperOfMonika As Boolean
    • bIsSuperOfMonika = objArch.UserMan.IsSuperOf("TS012345")
  • IsRelativeOf()
  • Überprüft, ob der eingeleitete Benutzer ein Verwandter des derzeitigen Benutzers ist.
  • Syntax:
    • Public Function IsRelativeOf(sEmpId As String) As Boolean
    • End Function
  • Parameter:
    • sEmpId: Zeichenfolge, die eine Angestellten-ID-Nummer enthält
  • Beispiel:
    • Dim bIsRelativeOfMonika As Boolean
    • bIsRelativeOfMonika = objArch.UserMan.IsRelativeOf("TS012345")
  • IsInRole()
  • Überprüft, um zu sehen, ob der derzeitige Benutzer sich in einer gewissen Rolle befindet.
  • Syntax:
    • Public Function IsInRole(sRole As String) As Boolean
    • End Function
  • Parameter:
    • sRole: Zeichenfolge, die eine Rolle enthält
  • Beispiel:
    • Dim bIsInRoleTaskLibrarian As Boolean
    • bIsInRoleTaskLibrarian = objArch.UserMan.IsInRole("TA")
  • SecurityMan
  • Die Folgenden APIs befinden sich auf der Schnittstelle des Architekturobjekts 200 namens SecurityMan 514.
    EvalClaimRules;
    EvalFileNoteRules;
    EvalFormsCorrRules;
    EvalOrgRules;
    EvalRunApplicationRules;
    EvalRunEventProcRules;
    EvalTaskTemplateRules;
    EvalUserProfilesRules;
    IsOperAuthorized;
    GetUserId; und
    OverrideUser.
  • EvalClaimRules()
  • Diese API nimmt auf Geschäftsregeln zur Anspruchssicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalClaimRules(lBasicOp As cmBasicOperations, vContextData As Variant) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
    • vContextData: eine regelmäßige Variantenanordnung, die relevante Geschäftsobjekte oder andere Informationen hält.
  • Beispiel:
    Figure 01220001
  • EvalFileNoteRules()
  • Diese API nimmt auf Geschäftsregeln zur Dateinotizsicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalFileNoteRules(lBasicOp As cmBasicOperations, vContextData As Variant) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
    • vContextData: eine regelmäßige Variantenanordnung, die relevante Geschäftsobjekte oder andere Informationen hält.
  • Beispiel:
    Figure 01230001
  • EvalFormsCorrRules()
  • Diese API nimmt auf Geschäftsregeln für eine Sicherheitsüberprüfung von Formularen und Korrespondenz Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalFormsCorrRules(lBasicOp As cmBasicOperations) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
  • Beispiel:
    Figure 01240001
  • EvalOrgRules()
  • Diese API nimmt auf Geschäftsregeln zur Ereignisverarbeitungseinheitssicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalOrgRules(lBasicOp As cmBasicOperations) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
  • Beispiel:
    Figure 01240002
  • Figure 01250001
  • EvalRunApplicationRules()
  • Diese API nimmt auf Geschäftsregeln zum Ausführen der Anwendung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalRunApplicationRules(lBasicOp As cmBasicOperations) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
  • Beispiel:
    Figure 01250002
  • Diese API nimmt auf Geschäftsregeln zur Ereignisverarbeitungseinheitssicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalRunEventProcRules(lBasicOp As cmBasicOperations) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
  • Beispiel:
    Figure 01260001
  • EvalTaskTemplateRules()
  • Diese API nimmt auf Geschäftsregeln zur Aufgabenvorlagensicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalTaskTemplateRules(lBasicOp As cmBasicOperations) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
  • Beispiel:
    Figure 01260002
  • Figure 01270001
  • Diese API nimmt auf Geschäftsregeln zur Aufgabenvorlagensicherheitsüberprüfung Bezug und gibt einen booleschen Wert zurück, falls Regeln erfüllt sind.
  • Syntax:
    • Private Function EvalUserProfileRules(lBasicOp As cmBasicOperations, vContextData As Variant) As Boolean
    • End Function
  • Parameter:
    • lBasicOp: eine grundlegende Operation, die der derzeitige Benutzer durchführen möchte (das heißt Löschen)
    • vContextData: eine regelmäßige Variantenanordnung, die relevante Geschäftsobjekte oder andere Informationen hält.
  • Beispiel:
    Figure 01270002
  • Figure 01280001
  • GetUserId()
  • Gibt den Anmeldenamen/die Benutzer-id des derzeitigen Benutzers zurück.
  • Syntax:
    • Public Function GetUserId() As String
    • End Function
  • Beispiel:
    • Dim sUserId as String
    • sUserId = GetUserId
  • IsOperAuthorized()
  • Diese API nimmt auf Geschäftsregeln Bezug und gibt einen booleschen Wert, der bestimmt, ob der Benutzer Sicherheitsprivilegien zum Durchführen einer gewissen Operation hat, zurück.
  • Syntax:
    • Public Function IsOperAuthorized(vMsg, as variant, nOperation as cmOperations, vContext As Variant) As Boolean
    • End Function
  • Parameter:
    • vMsg: die Standardarchitekturnachricht
    • nOperation: eine Aufzählung, die einen Namen der zu überprüfenden Operation enthält.
    • vcontext: eine regelmäßige Variantenanordnung, die relevante Geschäftsobjekte oder andere Informationen hält.
  • Beispiel:
    • Dim bCanIDoThis As Boolean
    • bCanIDoThis = objArch.SecurityMan.IsOperAuthorized(vMsg, aOperationName, vContext)
    • TlbEditIcon.Enabled = bCanIDoThis
  • Override User()
    • Initialisiert für einen anderen Benutzer neu.
  • Syntax:
    • Public Sub OverrideUser(Optional sUserId As String, Optional dictRoles As CDictionary, Optional dictSubs As CDictionary)
    • End Function
  • Parameter:
    • sUserId:
    • dictRoles:
    • dictSubs:
  • Beispiel:
    Figure 01290001
  • CODERAHMEN
  • Allgemeine Anforderungen
  • Es werden getrennte Tabellen (CodesDecodes) zum Speichern der statischen Werte erzeugt.
  • Nur die Bezugnahmen auf Codes/Decodes werden in Geschäftstabellen (zum Beispiel Aufgabe), die diese Werte nutzen, gespeichert. Dies minimiert die Größe der Geschäftstabellen, da ein Speichern eines Code-Werts viel weniger Speicherplatz als sein entsprechender Decode-Wert braucht (zum Beispiel wird für den Staat "AL" statt der Zeichenfolge "Alabama" in jeder Tabellenzeile gespeichert).
  • CodeDecodes werden lokal auf der Clientworkstation in einer lokalen DBMS gespeichert. Bei der Anwendungsstartprozedur wird eine Prozedur zum Sicherstellen, dass die lokalen Tabellen synchron mit der zentralen DBMS sind, durchgeführt.
  • Infrastrukturansatz
  • Der Ansatz der Code-Decode-Infrastruktur 600 der vorliegenden Erfindung gibt einen Überblick über das Verfahren des physischen Modellierens von Codetabellen. Das Modell ermöglicht es, Codes ohne Auswirkungen auf das physische Datenmodell und/oder die Anwendung und Architektur zu erweitern. Die 6 zeigt das physische Layout von CodeDecode-Tabellen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Infrastruktur
  • Das physische Modell der CodeDecode-Infrastruktur 600 tut das Folgende:
    Es unterstützt eine relationale Funktionalität zwischen CodeDecode-Objekten;
    Es unterstützt eine Erweiterbarkeit ohne eine Modifikation bei der DBMS oder der Anwendungsarchitektur;
    Es stellt einen konsistenten Ansatz zum Zugreifen auf alle CodeDecode-Elemente bereit; und
    Es ist leicht wartbar.
  • Diese generischen Tabellen sind dazu in der Lage, neue Kategorien und eine Modifikation von Beziehungen ohne einen Bedarf an einem Ändern der DBMS oder CodeDecode-Anwendungsarchitektur zu handhaben.
  • Die Vorteile dieses Modells sind die Erweiterbarkeit und die Wartbarkeit. Dieses Modell ermöglicht die Modifikationen von Codekategorien ohne irgendwelche Auswirkungen auf die DBMS oder den Anwendungsarchitekturcode. Dieses Modell erfordert es auch, dass weniger Tabellen gewartet werden. Darüber hinaus ist nur ein Verfahren zum Zugreifen auf CodeDecodes notwendig.
  • Tabellenbeziehungen und Feldbeschreibungen:
    • (pk) gibt einen primären Schlüssel an.
  • Code_Kategorie bzw. Code_Category 602
    • • C_Category (pk): die Kategorienummer für eine Gruppe von Codes
    • • C_Cache (derzeit nicht genutzt): kann angeben, ob die Kategorie in Speicher auf der Clientmaschine im Cache gespeichert werden sollte
    • • T_Category: eine Textbeschreibung der Kategorie (zum Beispiel Anwendungsaufgabentypen, Anspruchsstatus, Tage der Woche)
    • • D_Last_Update: das Datum, an dem irgendwelche Daten in der gegebenen Kategorie zuletzt aktualisiert wurden; dieses Feld wird zum Bestimmen, ob eine Kategorie oder Kategorien auf der lokalen Datenbasis zu aktualisieren ist oder sind, verwendet
  • Beziehnungen
    • • Eine Einer-zu-vielen- bzw. one-to-many-Beziehung mit dem Tabellen-Code (das heißt, eine Kategorie kann mehrere Codes haben)
  • Code 604
    • • C_Category (pk): die Kategorienummer für eine Gruppe von Codes
    • • C_Code (pk): eine kurze Codeidentifizierung (bis zu zehn Zeichen; die derzeitige maximale Länge, die verwendet wird, beträgt fünf Zeichen)
    • • D_Effective: ein Datumsfeld, das das effektive Datum des Codes angibt
    • • D_Expiration: ein Datumsfeld, das das Ablaufdatum des Codes angibt (die Vorgabe ist 1. Januar 2999)
  • Beziehungen
    • • Eine Viele-zu-einem- bzw. many-to-one-Beziehung mit Code_Category 602 (vorstehend beschrieben)
    • • Eine one-to-many-Beziehung mit Code_Relations 606 (eine gegebene Kategorie-und-Code-Kombination kann zu mehreren anderen Kategorie-und-Code-Kombinationen in Beziehung gebracht werden)
  • Code_Beziehungen bzw. Code_Relations 606
    • • C_Category1 (pk): die erste Kategorie
    • • C_Code1 (pk): der erste Code
    • • C_Category2 (pk): die zugehörige Kategorie
    • • C_Code2 (pk): der zugehörige Code
  • Beziehungen
    • • Eine many-to-one-Beziehung mit der Code-Tabelle (jede Kategorie und jeder Code in der Code-Tabelle kann mehrere zugehörige Kategorie-Code-Kombinationen haben)
  • Code_Decode 608
    • • C_Category (pk): die Kategorienummer für eine Gruppe von Codes
    • • C_Code (pk): dine kurze Codeidentifizierung (bis zu zehn Zeichen; die derzeitige maximale Länge, die verwendet wird, beträgt fünf Zeichen)
    • • N_Lang_ID (pk): ein Wert, der die lokale Spracheinstellung angibt (wie in den Regionaleinstellungen einer gegebenen Maschine definiert). Der Wert für Englisch (Vereinigte Staaten) wird zum Beispiel als 0409 gespeichert. Ein Verwenden dieser Einstellung ermöglicht die Speicherung und Auswahl von Textcodebeschreibungen basierend auf der gewählten Sprache
    • • T_Short_Desc: eine abgekürzte Textbeschreibung von C_Code
    • • T_Long_Desc: eine Textbeschreibung von C_Code mit voller Länge – welche der Benutzer tatsächlich sehen wird (zum Beispiel Schließe Ergänzung – Wiederherstellung, Dateinotiz, Arbeitskraftkompensation)
  • Lokalisierungsunterstützungsansatz
  • Lokalisierung freigeben
  • Codes haben eine Unterstützung für mehrere Sprachen. Der Schlüssel zu diesem Merkmal ist ein Speichern einer Sprachidentifizierung zusammen mit jedem CodeDecode-Wert. Dieses Sprachfeld bildet einen Teil des zusammengesetzten Schlüssels der Code_Decode-Tabelle. Jeder Code-API-Nachschlagevorgang schließt einen Aufruf auf Systemebene zum Wiedergewinnen der Sprachsystemvariablen ein. Dieser Wert wird als Teil des Aufrufs zum Wiedergewinnen der Werte, denen die richtige Sprache zugewiesen ist, verwendet.
  • Warten von Sprachlokalisierungseinstellung
  • Eine Verknüpfung mit der Sprachsystemumgebungsvariablen zu den Sprachschlüsseln ist bei jedem CodeDecode gespeichert. Dieser Wert wird zu jeder Zeit durch den Benutzer einfach modifiziert, indem er die in dem Steuerungsfeldordner von Microsoft Windows verfügbare Regionaleinstellungsbenutzerschnittstelle bearbeitet.
  • Codeablaufansatz
  • Ein Handhaben von zeitempfindlichen Codes wird ein Problem, wenn Steuerungen mit einer Liste von Werten gefüllt werden. Ein Ziel besteht darin, es nur dem Benutzer zu ermöglichen, passende Einträge zu betrachten und auszuwählen. Die Herausforderung liegt darin, dazu in der Lage zu sein, Codes ablaufen zu lassen, ohne die Anwendung nachteilig zu beeinflussen. Um dies zu erreichen, wird berücksichtigt, wie jede UI, der ihre derzeitige Betriebsart gegeben ist, entscheiden wird, welche Werte dafür passend sind, sie dem Benutzer zu zeigen.
  • Die drei häufigsten UI-Betriebsarten, die zeitempfindliche Codes beeinflussen, sind die Hinzufügungsbetriebsart, die Betrachtungsbetriebsart und die Bearbeitungsbetriebsart.
  • Hinzufügungsbetriebsart
  • In der Hinzufügungsbetriebsart werden typischerweise nur gültige Codes als Auswahloptionen für den Benutzer angezeigt. Es ist zu beachten, dass die Konstante, cmValidCodes, die Vorgabe ist und selbst dann, wenn dieser optionale Parameter weggelassen wird, immer noch in derselben Weise arbeiten wird.
    Set colStates = objArch.CodesMan.FillControl(frmCurrentForm.cboStates, cmCatStates, cmLongDecode, cmValidCodes)
  • Betrachtungsbetriebsart
  • In der Betrachtungsbetriebsart betrachtet der Benutzer typischerweise ohne eine direkte Fähigkeit zum Bearbeiten Ergebnisse von Verlaufsdaten. Ein Bearbeiten von ausgewählten Verlaufsdaten startet eine andere UI. Angesichts dessen werden die Steuerungen mit gültigen und abgelaufenen Codes oder mit anderen Worten nicht anhängigen Codes gefüllt.
    Set colStates = objArch.CodesMan.FillControl(frmCurrentForm.cboStates, cmCatStates, cmLongDecode, cmNonPendingCodes)
  • Bearbeitungsbetriebsart
  • In der Bearbeitungsbetriebsart sind Änderungen bei gültigen Codes erlaubt, aber es werden auch abgelaufene Codes angezeigt, falls sie bereits der Einheit zugewiesen sind.
    Dim colAssignedCodes As New cCollection
    colAssignedCodes.Add HistoricalAddress.State
    Set colStates = objArch.CodesMan.FillControl(frmCurrentForm.cboStates, cmCatStates, cmLongDecode, cmValidCodes, colAssignedCodes)
  • Aktualisieren von lokalen CodeDecodes
  • Die lokalen CodeDecode-Tabellen werden mit einem zentralen Speicher von CodeDecodes synchron gehalten. Die Architektur ist dafür verantwortlich, auf einer regelmäßigen Grundlage eine Überprüfung auszuführen, um zu sehen, ob irgendwelche neuen oder aktualisierten Code-Decodes von dem Server vorhanden sind. Die Architektur gibt auch bei einer Erfassung von neuen oder modifizierten CodeDecode-Kategorien die zugehörigen Daten zurück und führt eine Aktualisierung bei der lokalen Datenbank durch. Die 7 zeigt ein Logikdiagramm für diesen Prozess 700.
  • Nach einem API-Aufruf wird eine Überprüfung ausgeführt, um zu bestimmen, ob die Architektur initialisiert ist 702. Falls sie es ist, wird eine Überprüfung ausgeführt, um zu bestimmen, ob das Frischeintervall abgelaufen ist 704. Falls das Frischeintervall nicht abgelaufen ist, ist der API-Aufruf abgeschlossen 706. Wenn jedoch entweder die Architektur nicht initialisiert ist oder das Frischeintervall abgelaufen ist, dann werden die Felder "LetzteAktualisierung" bzw. "LastUpdate" für jede Kategorie aus dem CodeDecode gelesen und zu dem Server geleitet 708. Daraufhin werden neue und aktualisierte Kategorien aus der Datenbank gelesen 710. Schließlich wird die lokale Datenbank aktualisiert 712.
  • Codezugriffs-APIs
  • Das Folgende sind sich auf der Schnittstelle des Architekturobjekts 200 namens CodesMan 500 befindende APIs.
    GetCodeObject(nCategory, sCode);
    GetCategoryCodes(nCategory);
    FillControl(ctlControl, nCategory, nFillType, [nCodeStatus], [colAssignedCodes]).
  • GetCodeObject: Gibt für eine spezifische Kategorie und einen spezifischen Code ein gültiges CCode-Objekt zurück.
  • Syntax:
    • GetCodeObject(nCategory, sCode)
  • Parameter:
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat.
    • sCode: eine Zeichenfolge, die das Code-Attribut des CodeDecode-Objekts angibt.
  • Beispiel:
    • frmCurrentForm.lblState = objArch.CodesMan.GetCodeObject (cmCatStates, "IL").LongDecode
  • GetCategoryCodes: Gibt für eine gegebene gültige Kategorie eine Sammlung von CCode-Objekten zurück.
  • Syntax:
    • GetCategoryCodes(nCategory)
  • Parameter:
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat.
  • Beispiel:
    • Dim colMyStates As CCollection
    • Set colMyStates = objArch.CodesMan.GetCategory(cmCatStates)
  • FillControl: Diese API wird zum Füllen von Listenfeldern oder Kombinationsfeldern mit Werten aus einer Liste von CodeDecodes verwendet. Gibt eine Sammlung für nachfolgende Nachschlagevorgänge zu Code-Objekten, die zum Füllen von Steuerungen verwendet werden, zurück.
  • Syntax:
    • FillControl(ctlControl, nCategory, nFillType, [nCodeStatus], [colAssignedCodes])
  • Parameter:
    • ctlControl: eine Bezugnahme auf ein eingeleitetes Listenfeld oder Kombinationsfeld.
    • nCategory: die ganzzahlbasierte Konstante, die diese CodeDecodes von anderen klassifiziert hat.
    • nFillType: das Attribut des CodeDecodes, das du füllen möchtest. Gültige Werte schließen ein: cmCode cmShortDecode cmLongDecode
    • nCodeStatus: optionaler Wert, der die Code-Decodes gemäß ihren effektiven Daten und Ablaufdaten filtert. Gültige Konstanten schließen die folgenden ein: cmAllCodes Anhängige + Gültige + Abgelaufene Codes cmPendingCodes Codes, deren effektives Datum größer als das derzeitige Datum ist cmValidCodes Nicht Anhängige oder Abgelaufene Codes cmExpiredCodes Codes, deren abgelaufenes Datum größer als das derzeitige Datum ist cmNonPendingCodes Gültige + Abgelaufene Codes cmNonValidCodes Anhängige + Abgelaufene Codes cmNonExpiredCodes Anhängige + Gültige Codes
    • colAssignedCodes: verwendet, wenn eine Steuerung gefüllt wird, die sich füllen und zugewiesene Werte einschließen sollte.
  • Beispiel:
    Figure 01390001
  • Figure 01400001
  • Relationale Codezugriffs-APIs
  • Über die APIs "GetCodeObject" oder "GetCategoryCodes" zurückgegebene Codeobjekte können Beziehungen zu anderen Codeobjekten haben. Dies ermöglicht eine Funktionalität, bei der Codes anderen einzelnen Codeobjekten zugeordnet werden.
  • Die zum Wiedergewinnen dieser Werte verwendeten APIs ähneln denen auf der CodesMan-Schnittstelle. Der Unterschied besteht jedoch darin, dass die Verfahren auf dem Codes-Objekt statt der CodesManager-Schnittstelle aufgerufen werden: nachstehend sind wieder die APIs aufgelistet.
    GetCodeObject(nCategory, sCode);
    GetCategoryCodes(nCategory);
    FillControl(ctlControl, nCategory, nFillType, [nCodesStatus], [colAssignedCodes]).
  • Nachstehend ist etwas Probecode zum Veranschaulichen, wie diese APIs auch aus Code-Objekten aufgerufen werden, angegeben.
  • Beispiel für GetCodeObject:
    • Dim objBondCode As CCode
    • Set objBondCode = objArch.CodesMan.GetCodeObject(cmCatLOB, "B")
    • Dim objSuretyCode As CCode
    • Set objSuretyCode = objBondCode.GetCodeObject(cmCatSupplement, "B01")
  • Beispiel für GetCategory:
    • Dim objBondCode As CCode
    • Set objBondCode = objArch.CodesMan.GetCodeObject(cmCatLOB, "B")
    • Dim colSupplements As CCollection
    • Set colSupplements = objBondCode.GetCategory(cmCatSupplement)
  • Beispiel für FillControl:
    • Dim objBondCode As CCode
    • Set objBondCode = objArch.CodesMan.GetCodeObject(cmCatLOB, "B")
    • Dim colSupplements As CCollection
    • Set colSupplements = objBondCode.FillControl(frmForm.cboSupplements, cmCatSupplements, cmLongDecode)
  • NACHRICHTENPROTOKOLLIERUNG
  • Die Nachrichtenprotokollierungsarchitektur ermöglicht eine Nachrichtenprotokollierung in einer sicheren und konsistenten Art und Weise. Die Schnittstelle zu der Nachrichtenprotokollierungskomponente ist einfach und konsistent, was eine Nachrichtenprotokollierung auf einer beliebigen Verarbeitungsebene ermöglicht. Sowohl Fehlernachrichten als auch Informationsnachrichten werden in einer zentralisierten Ablage protokolliert.
  • Ein Abstrahieren des Nachrichtenprotokollierungsansatzes ermöglicht es der Realisierung, sich zu ändern, ohne gegen vorhandenen Code zu verstoßen.
  • Beste Praktiken
  • Nachrichten werden immer durch die Architektur protokolliert, wenn ein nicht behebbarer Fehler auftritt (das heißt das Netz zu Boden geht) und er nicht explizit gehandhabt wird. Eine Nachrichtenprotokollierung kann auf einer Grundlage wie benötigt verwendet werden, um die Diagnose und das Instandsetzen von SIRs zu erleichtern. Diese Sorte der Protokollierung ist an Punkten der Integration zwischen Klassen und Komponenten besonders gut verwendbar. Zum Zwecke des Austestens protokollierte Nachrichten haben einen Ernst der Informationen, um nicht mit legitimen Fehlernachrichten verwechselt zu werden.
  • Verwendung
  • Eine Nachricht wird protokolliert, indem die LogMessage()-Funktion auf der Architektur aufgerufen wird.
  • Beschreibung von Parametern:
    • vMsg: die Standardarchitekturnachricht
    • lSeverity: der Ernst der Nachricht
    • sClassName: der Name der Klasse, die die Nachricht protokolliert
    • sMethodName: der Name des Verfahrens, das die Nachricht protokolliert
    • sVersion: die Version der Binärdatei (EXE oder DLL), die das die Nachricht protokollierende Verfahren enthält
    • lErrorNum: die Nummer des derzeitigen Fehlers
    • sText: ein optionaler Parameter, der den Text der Nachricht enthält. Falls er weggelassen wird, wird der Text in einer Zeichenfolgendatei nachgeschlagen, oder die generische VB-Fehlerbeschreibung wird verwendet.
    • sText: ein optionaler Parameter, der den Text der Nachricht enthält. Falls er weggelassen wird, wird der Text in einer Zeichenfolgendatei nachgeschlagen, oder die generische VB-Fehlerbeschreibung wird verwendet.
    • lLoggingOptions: Ein optionaler Parameter, der eine Konstante enthält, die bestimmt, wo die Nachricht zu protokollieren ist (das heißt ein Weitergeben von cmLogToDBAndEventViewer an LogMessage wird den Fehler in der Datenbank und der Ereignisbetrachtungseinheit protokollieren.)
  • Protokollierungsstufen
  • Bevor eine Nachricht protokolliert wird, wird ihr Ernst mit der Protokollstufe der derzeitigen Maschine verglichen. Wenn der Ernst der Nachricht kleiner als die oder gleich der Protokollstufe ist, dann wird die Nachricht protokolliert.
  • Gültige Werte für die Protokollstufe sind als eine Aufzählung in VB definiert. Sie schließen ein:
  • Figure 01430001
  • Figure 01440001
  • Beispiel
    Figure 01440002
  • Datenbankprotokoll
  • Die Datenbankprotokolltabelle besteht aus den folgenden Feldern:
  • Figure 01450001
  • Lokales Protokoll
  • Nachrichten werden immer in dem Ereignisprotokoll des Anwendungsservers protokolliert; dies trifft jedoch nicht notwendigerweise für die Datenbank wie durch den an LogMessage weitergegebenen optionalen Parameter, lLoggingOptions, mitgeteilt zu. Ein Administrator mit den passenden Zugriffsrechten kann sich mit dem MTS-Anwendungsserver fernverbinden und sein Ereignisprotokoll betrachten. Nur ein MTS-Paket enthält die Ereignisprotokollkomponente, so dass Fehler alle in das gleiche Anwendungsserverereignisprotokoll geschrieben werden.
  • Über Visual Basic protokollierte Ereignisse haben immer "VBRuntime" als die Quelle. Das Computerfeld wird automatisch mit dem Namen des Computers, der das Ereignis protokolliert (das heißt dem MTS-Anwendungsserver), statt dem Computer, der das Ereignis erzeugt hat (typischerweise ein Clientcomputer), besetzt.
  • Die gleichen Ereignisdetails, die in die Datenbank geschrieben werden, werden in eine lesbare Zeichenfolge formatiert und in das Protokoll geschrieben. Der Text "die durch ... identifizierte VB-Anwendung hat protokolliert:" wird automatisch durch VB hinzugefügt; der Text, der folgt, enthält die Details der Nachricht.
  • DATENZUGRIFF
  • Alle außer ein paar Ausnahmefällen verwenden die API "FühreAbfrageAus" bzw. "ExecuteQuery". Die API deckt Einzeldatenbankoperationen, bei denen eine einzelne Eingabe und eine einzelne Ausgabe vorhanden sind, ab. Im Wesentlichen sollten nur gewisse Operationen des Stapeltyps ausgeschlossen sein.
  • Der Datenzugriffsrahmen dient den Zwecken der Leistung, der Konsistenz und der Wartbarkeit.
  • Leistung
  • Das Verfahren "ExecuteQuery" umfasst Verwendungsmuster zum Verwenden von ADO in einer effizienten Art und Weise. Beispiele für diese Muster schließen eine Nutzung von getrennten Datensatzgruppen und ein explizites Vereinbaren von optionalen Parametern, die zu der besten Leistung führen, ein.
  • Konsistenz
  • Dieses Verfahren stellt eine gemeinsame Schnittstelle für eine Entwicklung des Datenzugriffs bereit. Wenn eine einfache und stabile Datenzugriffsschnittstelle gegeben ist, können beste Praktiken entwickelt und verbreitet werden.
  • Wartbarkeit
  • Da das Verfahren sich an einem einzelnen Ort befindet, ist es sehr modularisiert und kann mit wenig Auswirkungen auf seine Aufrufer gewartet werden.
  • Anwendungsserver verwenden oft die Datenzugriffsschnittstelle ActiveX-Datenobjekte (ADO bzw. ActiveX Data Objects). Dies ermöglicht ein vereinfachtes Programmiermodell sowie es den Ausführungsbeispielen zu ermöglichen, eine Vielzahl von Datenquellen zu nutzen.
  • Das Verfahren "ExecuteQuery"
  • Überblick
  • Das Verfahren "ExecuteQuery" sollte für die meisten Anwendungs-SQL-Aufrufe verwendet werden. Dieses Verfahren kapselt eine Funktionalität zum Verwenden von ADO in einer wirkungsvollen und effizienten Art und Weise ein. Diese API findet bei Situationen, in denen eine einzelne Operation, die ein einzelnes Datensatzgruppenobjekt zurückgibt, ausgeführt werden muss, Anwendung.
  • Syntax
    • Set obj = ExecuteQuery(vMsg, nTranType, sSQL, [nMaxRows], [adoTransConn], [args])
  • Parameter
  • vMsg
  • Dieser Parameter ist die TechArt-Struktur. Diese wird als ein Token zur Informationserfassung wie beispielsweise Leistungsmetrik, Fehlerinformationen und Sicherheit verwendet.
  • nTranType
  • Eine anwendungsdefinierte Konstante, die angibt, welcher Typ von Operation durchgeführt wird. Werte für diesen Parameter können welche von den folgenden Konstanten sein:
    cmSelect
    cmSelectLocal
    cmUpdate
    cmInsert
    cmDelete
  • sSQL
  • Zeichenfolge, die den gegen die DBMS durchzuführenden SQL-Code enthält.
  • nMaxRows (optional)
  • Ganzzahliger Wert, der die maximale Anzahl von Datensätzen, die die Datensatzgruppe der derzeitigen Abfrage zurückgeben wird, darstellt.
  • adoTransConn (optional)
  • Ein ADO-Verbindungs-Objekt. Dieses wird für Operationen, die eine ADO-Transaktionssteuerung erfordern (siehe Abschnitt "Verwenden von Transaktionen"), erzeugt und in das Ausführen der Abfrage eingeleitet.
  • args (optional)
  • Eine Liste von Parametern, die respektvoll in die SQL-Anweisung einzufügen sind.
  • Realisierung
  • Bei einem Ausführungsbeispiel der vorliegenden Erfindung befindet sich das Verfahren "ExecuteQuery" in der Datei MservArch.bas. Diese Datei sollte in alle Projekte des Serverkomponententyps integriert werden. Dies wird es jeder Serverkomponente ermöglichen, auf dieses Verfahren zuzugreifen.
    • Anmerkung: da dieses Verfahren in einem "bas"-Modul ist, ist es von überall in dem Projekt global verfügbar.
  • Figure 01490001
  • Figure 01500001
  • Figure 01510001
  • Figure 01520001
  • Figure 01530001
  • Auswählen von Datensätzen
  • ExecuteQuery nutzt getrennte Datensatzgruppen für Anweisungen des Typs "Auswählen" bzw. "Select". Dies erfordert, dass die Clients, insbesondere die CCAs, eine Bezugnahme auf ADOR, eine ActiveX-Datenobjekt-Datensatzgruppe (ActiveX Data Object Recordset), enthalten. Diese DLL ist eine Untermenge der ADODB-DLL. ADOR enthält nur das Datensatzgruppenobjekt.
  • Ein Verwenden von getrennten Datensatzgruppen ermöglicht ein Führen von Datensatzgruppenobjekten von dem Server zu dem Client. Dies funktioniert sehr viel effizienter als die regelmäßige Variantenanordnung, die mit einem Verwenden der API "GetRows" auf dem Server verbunden ist. Diese Leistungssteigerung ist besonders augenscheinlich, wenn der Anwendungsserver mit einer großen Anzahl von gleichzeitigen Benutzern belastet ist.
  • Probe von Clientkomponentenadapter (CCA)
    Figure 01530002
  • Figure 01540001
  • Probe von Serverkomponente
    Figure 01540002
  • Codeausschnitt von ExecuteQuery (Auswahlabschnitt)
    Figure 01540003
  • Einfügen von Datensätzen
  • Ein Einfügen von Datensätzen erfordert gewisse eine optimistische Sperrung betreffende Informationen. Auf dem Server wird ein eindeutiger Wert angefordert, um das letztmalige Modifizieren anzugeben. Dieser eindeutige Wert wird derart zurück zu dem Anforderer zurückgegeben, dass er für spätere Datenbankoperationen verwendet werden kann.
  • Probe von Clientkomponentenadapter (CCA)
    • Dim vNewTS as Variant
    • vNewTS = objServer.PerformInsert(vMsg, nId, sName)
    • ' Zeitstempel des Objekts auf vNewTS einstellen
  • Probe von Serverkomponente
    • Private Const cmCustInsertSQL = "Insert Customer(nId, Name, LastUpdated) Values(?, '?', ?)"
    • Public Function PerformInsert(vMsg, nId, sName) As Variant
    • Dim lCurrTS as Long
    • lCurrTS = GetTimeStamp
    • Dim colArgs as CCollection
    • Set colArgs = New Ccollection
    • colArgs.Add nId
    • colArgs.Add sName
    • colArgs.Add lCurrTS
    • ExecuteQuery(vMsg, cmInsert, sCustInsertSQL, , , colArgs)
    • PerformInsert = lCurrTS
  • Codeausschnitt von ExecuteQuery (Einfügungsabschnitt)
    • Case cmInsert
    • Set adoRS = adoConn.Execute(sSQL, nRecordsAffected, adCmdText)
    • If nRecordsAffected <= 0 Then Err.Raise cmErrQueryInsert
    • Set adoRS = Nothing
    • ExecuteQuery = nRecordsAffected
  • Aktualisieren von Datensätzen
  • Ein Aktualisieren von Datensätzen erfordert gewisse eine optimistische Sperrung betreffende Informationen. Auf dem Server wird ein eindeutiger Wert angefordert, um das letztmalige Modifizieren anzugeben. Ferner wird der letzte Lesezeitstempel verwendet, um während der Aktualisierung zu validieren, dass der Datensatz seit dem letztmaligen Lesen nicht modifiziert worden ist.
  • Probe von Clientkomponentenadapter (CCA)
    • Dim vNewTS as Variant
    • vNewTS = objServer.PerformUpdate(vMsg, 1, 'Rick', 8907654)
    • ' Zeitstempel des Objekts auf vNewTS einstellen
  • Probecodeausschnitt von Serverkomponente
    Figure 01560001
  • Figure 01570001
  • Codeausschnitt von ExecuteQuery (Aktualisierungsabschnitt)
    Figure 01570002
  • Löschen von Datensätzen
  • Bei einem Löschen von Datensätzen wird der letzte Lesezeitstempel verwendet, um während des Löschens zu validieren, dass der Datensatz seit dem letztmaligen Lesen nicht modifiziert worden ist.
  • Probe von Clientkomponentenadapter (CCA)
    • Dim vAns as Variant
    • vAns = objServer.PerformDelete(vMsg, nId, lLastTS)
  • Probe von Serverkomponente
    Figure 01570003
  • Figure 01580001
  • Codeausschnitt von ExecuteQuery (Löschungsabschnitt)
    Figure 01580002
  • DATENBANKSPERRUNGSRAHMEN
  • Eine Datenbanksperrung stellt die Integrität der Datenbank in einer Mehrbenutzerumgebung sicher. Eine Sperrung verhindert das häufige Problem von verloren gegangenen Aktualisierungen von mehreren den gleichen Datensatz aktualisierenden Benutzern.
  • Lösungsoptionen
  • Pessimistische Sperrung
  • Diese Politik der Sperrung ermöglicht es dem ersten Benutzer, einen vollen Zugriff auf den Datensatz zu haben, während folgenden Benutzern ein Zugriff verweigert wird oder sie einen Nur-Lese-Zugriff haben, bis der Datensatz entsperrt ist. Es sind Nachteile bei diesem Verfahren zur Sperrung vorhanden. Es ist ein Verfahren, das anfällig für gegenseitige Sperrungen auf der Datenbank sowie eine schlechte Leistung, wenn auf Konflikte gestoßen wird, ist.
  • Optimistische Sperrung
  • Der optimistische Ansatz zu der Datensatzsperrung basiert auf der Annahme, dass es keine normale Verarbeitung für mehrere Benutzer ist, Datensätze gleichzeitig sowohl zu lesen als auch zu aktualisieren. Diese Situation wird als Ausnahmeverarbeitung statt als normale Verarbeitung behandelt. Zu der Lesezeit werden nicht tatsächlich Sperrungen auf der Datenbank platziert. Zu der Zeit des Aktualisierens oder Löschens wird ein Zeitstempelmechanismus verwendet, um sicherzustellen, dass ein anderer Benutzer den Datensatz nicht modifiziert oder gelöscht hat, seit du den Datensatz zuletzt gelesen hast.
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung verwendet einen Ansatz der optimistischen Sperrung zur Steuerung des gleichzeitigen Zugriffs. Dies stellt die Datenbankintegrität sowie den mit dieser Form der Sperrung verbundenen geringen Overhead sicher. Andere Vorteile bei diesem Verfahren sind eine erhöhte Verfügbarkeit von Datensätzen für mehrere Benutzer und eine Minimierung von gegenseitigen Sperrungen der Datenbank.
  • Tabellenkandidaten für eine Steuerung des gleichzeitigen Zugriffs werden während der "Datenmodellierungsübung" identifiziert. Die einzige Tabelle, die gleichzeitig aktualisiert wird, ist der Mechanismus der optimistischen Sperrung. Sobald diese identifiziert sind, wird das Folgende zu der Anwendung hinzugefügt.
    Feld "N_Last_Updt" zu Tabelle in Datenbank hinzufügen;
    Fehlerhandhabungsroutinen bei den Operationen, die aus dieser Tabelle modifizieren oder löschen; und
    Anzeige/Mitteilung für Benutzer, dass der Fehler aufgetreten ist.
  • Verwendung
  • Die nachstehende Tabelle beschreibt die Rollen der zwei grundlegenden Typen von Komponenten zum Ermöglichen einer optimistischen Sperrung.
    • Annahme: Das Feld der optimistischen Sperrung ist von dem Typ Datum und wird "N_Last_Updt" genannt
  • Figure 01600001
  • Figure 01610001
  • Figure 01620001
  • GROSSER ERGEBNISSATZ
  • Wenn Datensätze aus einer Datenbank wiedergewonnen werden, wird die Menge von Daten, deren Wiedergewinnung aus der Datenbank und Weitergabe quer über das Netz erforderlich ist, die durch den Benutzer wahrgenommene Leistung beeinflussen, falls die Suchkriterien zu weit sind. Fenster, die derartige Daten anfordern, werden langsam zu malen sein, und Suchen werden langsam sein. Die Ausbildung der Datenbankabfragen wird derart ausgeführt, dass eine praktikable Menge von Daten wiedergewonnen wird. Es sind ein paar Optionen vorhanden, um sich den Problemen zu widmen, die aus großen Ergebnissätzen entstehen. Die Optionen sind nachstehend in der Reihenfolge der Präferenz angegeben.
  • Die Schnittstelle/Steuerungseinheit neu entwerfen, um kleinere Ergebnissätze zurückzugeben. Durch ein Entwerfen der Steuerungseinheiten, die die Datenbankabfragen intelligent präsentieren, geben die Abfragen, die dem Datenbankserver präsentiert werden, keinen Ergebnissatz zurück, der groß genug ist, um die durch den Benutzer wahrgenommene Leistung zu beeinflussen. Im Wesentlichen gibt das Potential zum Wiedergewinnen von zu vielen Datensätzen an, dass die UIs und die Steuerungseinheiten verschieden entworfen worden sind. Ein Beispiel für eine gut entworfene Such-UI ist eines, bei dem der Benutzer dazu aufgefordert wird, minimale Suchkriterien einzutragen, um einen übermäßig großen Ergebnissatz zu verhindern.
  • Scrollbare Ergebnissätze haben. Die scrollende Wiedergewinnung eines großen Ergebnissatzes ist die inkrementelle Wiedergewinnung einer Ergebnisuntermenge, die so viele Male, wie es der Benutzer anfordert, oder bis der ganze Ergebnissatz erhalten ist wiederholt wird. Ergebnisse werden durch den Ansatz der begrenzten Abfrage (Bounded Query Approach) wiedergewonnen, bei dem der erste Datensatz durch eine Wo-Klausel (where clause) mit berechneten Werten bestimmt wird.
  • Clientanforderungen für scrollbaren Ergebnissatz
  • Bevorzugte UI
  • Die bevorzugten Anzeigen stellen sich dar wie folgt:
    Zurückgegebene Ergebnisse werden in einem GreenTree-Listenfeld angezeigt;
    Eine Aktionsschaltfläche mit der Aufschrift Mehr ... wird für den Benutzer bereitgestellt, um die verbleibenden Ergebnisse zu erhalten;
    Die Mehr-Schaltfläche wird freigegeben, wenn der Benutzer eine anfängliche Suche durchgeführt hat und immer noch wiederzugewinnende Ergebnisse vorhanden sind;
    Die Mehr-Schaltfläche wird gesperrt, wenn keine wiederzugewinnenden Ergebnisse mehr vorhanden sind;
    Das Listenfeld und die Aktionsschaltfläche sind in einem Gruppenfeld enthalten, um eine visuelle Verbindung zwischen der Schaltfläche und dem Listenfeld bereitzustellen.
  • Begrenzte Abfrage
  • Abfragen, die mit den begrenzten Ergebnissätzen realisiert werden, werden zu dem Server gesendet. Der Server realisiert das executeQuery-Verfahren, um die Datensatzgruppe wie gewöhnlich wiederzugewinnen. Begrenzte Ergebnisabfragen haben eine Reihenfolge gemäß einer Klausel, die die durch das Geschäft erforderte Sortierungsreihenfolge zusammen mit einer ausreichenden Anzahl von Spalten zum Sicherstellen, dass alle Zeilen eindeutig identifiziert werden können, aufweist. Die Datensatzgruppe wird durch die von dem Client weitergegebene Variable nMaxRows, die zum Erhalten der ersten Zeile des nächsten Ergebnissatzes erhöht wird, begrenzt. Die Rückgabe von der Komponente ist genau so wie mit einer Abfrage, die nicht begrenzt ist, eine Datensatzgruppe. Der CCA 208 erzeugt die Objekte und leitet diese zurück zu der Steuerungseinheit 206. Die Steuerungseinheit 206 fügt diese zurückgegebene Sammlung von Objekten zu ihrer Sammlung von Objekten (eine Ansammlung von vorhergehenden Ergebnissen) hinzu, und während sie dies tut, wird sie den Vergleich des letzten Objekts mit dem ersten Objekt der nächsten Zeile durchführen. Die zum Unterscheiden der zwei Zeilen notwendigen Werte werden zu der regelmäßigen Variantenanordnung, die zum Weitergeben zu der Komponente für die nachfolgende Abfrage notwendig ist, hinzugefügt.
  • Die Steuerungseinheit 206 auf dem Client behält die Werte für nMaxRows, die anfängliche SQL-Anweisung und die regelmäßige Anordnung von Werten, um zwischen der letzten Zeile der vorhergehenden Abfrage und der ersten Zeile der nächsten Abfrage zu unterscheiden. Der Mechanismus, durch den sich die Steuerungseinheit 206 bewusst ist, dass mehr wiederzugewinnende Datensätze vorhanden sind, besteht darin, zu überprüfen, dass die Anzahl von Ergebnissen eins größer als die maximale Anzahl von Zeilen ist. Zum Verhindern der Wiedergewinnung von Datensätzen über das Ende der Datei hinaus sperrt die Steuerungseinheit 206 diese Funktionen bei der UI. Es wird zum Beispiel eine Befehlsschaltfläche Mehr bei der UI, die zum Anfordern der Daten verwendet wird, gesperrt, wenn die Anzahl von zurückgegebenen Objekten kleiner als nMaxRows + 1 ist.
  • Anwendungsverantwortlichkeit
  • Server
  • Die Serverkomponente ist für ein Erzeugen einer Sammlung von Argumenten und ein Anhängen der SQL-Anweisung zum Hinzufügen einer Wo-Klausel, die dazu in der Lage sein wird, zwischen der letzten Zeile der vorhergehenden Abfrage und der ersten Zeile der nächsten zu unterscheiden, verantwortlich.
  • CCA
  • Der CCA 208 verarbeitet die Datensatzgruppe in Objekte wie bei nicht begrenzten Abfragen. Der CCA 208 leitet die von der Steuerungseinheit 206 weitergegebene regelmäßige Variantenanordnung weiter, um die begrenzten Ergebnisse zu identifizieren.
  • Steuerungseinheit
  • Die Steuerungseinheit 206 hat die Verantwortlichkeit des Sperrens der Mehr-Steuerung, wenn das Ende der Datei erreicht worden ist. Die Steuerungseinheit 206 besetzt die regelmäßige Variantenanordnung (vKeys) mit den zum Bestimmen eines Starts der nächsten Abfrage notwendigen Werten.
  • Beispiel
  • Ein CCA 208 wird für eine benutzerdefinierte Suche, die das Potential zum Zurückgeben eines ziemlich großen Ergebnissatzes hat, codiert. Das nachstehende Codebeispiel realisiert den Ansatz der begrenzten Abfrage.
  • Auf dem Server codiert der Entwickler die Abfrage wie folgt:
  • Figure 01660001
  • Figure 01670001
  • End Function
  • Zum Bestimmen der zusätzlichen Wo-Klausel, die zum Bestimmen des Startpunkts der Abfrage notwendig ist, wird das folgende Verfahren hinzugefügt:
  • Figure 01680001
  • Auf dem CCA 208 muss eine Erlaubnis für das Weitergeben der vKeys erteilt werden.
  • Figure 01690001
  • Die Steuerungseinheit leitet die Abfrage ein und aktualisiert die regelmäßige Variantenanordnung von Schlüsseln und Eigenschaften des Formulars 204 basierend auf der Rückgabe. Zusätzlich zu dem für das nachstehende Beispiel gezeigten Code wird die Mehr-Steuerung freigegeben, falls die Suche zurückgesetzt wird.
    ' Instanzvariablen vereinbaren
    Private nMaxRows As Integer
    Dim interimResults As CCollection
    Dim vResults As CCollection
    Dim vKeys(3) As Variant
    ' Konstanten vereinbaren
    Private Const nDefaultAmount As Long = 50
    Private Const cmRetrieveBusinessObjectSQL = "SELECT * FROM NODE_RULE ORDER BY_N_TASK_TEMPL_ID"
  • Während einer Klasseninitialisierung das Folgende durchführen:
  • Figure 01700001
  • Die Suchrücksetzfunktionalität wird außerhalb der Initialisierung gehalten, so dass diese von anderen Teilen der Anwendung aufgerufen werden kann.
  • Figure 01700002
  • Figure 01710001
  • Zum Behalten der Werte zum Unterscheiden zwischen der letzten Zeile des Ergebnissatzes und der ersten Zeile des nächsten wird das folgende Verfahren auf der Steuerungseinheit verwendet:
  • Figure 01720001
  • Figure 01730001
  • Betrieb von Beispiel mit Daten
    Figure 01730002
  • Man lasse für dieses Beispiel nMaxRows = 3 sein. Der Geschäftsfall verlangt danach, den Ergebnissatz nach dem Nachnamen zu ordnen, und der Entwickler weiß, dass jede Zeile durch Felder des Vornamens bzw. FirstName, Nachnamens bzw. LastName und der eindeutigen ID bzw. Unique ID eindeutig identifiziert werden kann, so dass die in der Steuerungseinheit als eine Konstante hinzugefügte anfängliche SQL sein sollte; SELECT * FROM Person ORDER BY LastName, FirstName, Unique_ID
  • Anfängliche Abfrage
  • Die erste Abfrage wird mit einer leeren regelmäßigen Anordnung vKeys gesendet. Wenn der Server diese Abfrage empfängt, identifiziert das Verfahren ArqumenteFürGeschäftsobjekt bzw. ArgumentsForBusinessObject die Elemente als leer und besetzt die colArgs nicht. Die Abfrage wird mit der unveränderten anfänglichen SQL ausgeführt. Die Datensatzgruppe der Größe nMaxRows + 1 wird zu dem CCA 208 zurückgegeben und genau so wie nicht begrenzte Ergebnisse verarbeitet. Der CCA 208 gibt die Sammlung von Objekten zu der Steuerungseinheit 206 zurück. Die Steuerungseinheit 206 fährt fort, die Sammlung vResults mit den zurückgegebenen Objekten zu besetzen. vResults ist die umfassende Sammlung von zurückgegebenen Objekten. Wenn das letzte Objekt der ersten Anforderung erreicht wird (bei nMaxRows), werden die Werte als solche in vKeys gespeichert;
    vKeys(0) = LastName (Barleycorn)
    vKeys(1) = FirstName (John)
    vKeys(2) = Unique_ID (512)
  • Wenn das erste Objekt der nächsten Anforderung erreicht wird (bei nMaxRows + 1), wird ein Vergleich der Objektvariablen gegen die Werte von vKeys durchgeführt. Da die letzten Namen übereinstimmen, wird vKeys (2) nicht gelöscht, und es werden keine weiteren Überprüfungen durchgeführt.
  • Nachfolgende Abfrage
  • Die nachfolgende Abfrage wird vKeys zusammen mit ihr weitergeben. Der Server erzeugt die Sammlung von Argumenten aus vKeys und hängt die entsprechende sSq1-Zeichenfolge an. Die sSq1-Anweisung, die zu execute query geleitet wird, ist
    SELECT * FROM Person ORDER BY LastName, FirstName, Unique_ID
    WHERE ? >= ? AND ? >= ? AND ? > ?
  • Diese sSq1 und Sammlung sind in dem Aufruf an ExecuteQuery enthalten, der die Argumente mit der sich auf das Architekturverfahren MergeSQL stützenden Zeichenfolge vereinigt, um die SQL-Anweisung zu vervollständigen. Der Startpunkt der Datensatzgruppe wird durch die WO-Klausel definiert, und die Grenze wird durch den Wert nMaxRows eingestellt.
  • Abfrage für weniger beschränkende WO-Kriterien
  • Nach der zweiten Abfrage ist die letzte Zeile der Abfrage David Dyson, und die nächste ist Bobby Halford. Da der Nachname verschieden ist, wird vKeys abgesehen von vKeys(0) = Dyson leer sein. Die VerarbeiteObjektsammlung bzw. ProcessObjectCollection wird vKeys wie folgt besetzen, wenn das Objekt nMaxRows verarbeitet wird:
    vKeys(0) = LastName (Dyson)
    vKeys(1) = FirstName (David)
    vKeys(2) = Unique_ID (98)
  • Nach einem Identifizieren der Unterschiede zwischen Werten von vKeys und dem Objekt nMaxRows + 1 wird die regelmäßige Anordnung vKeys aktualisiert wie folgt:
    vKeys(0) = LastName (Dyson)
    vKeys(1) = Leer
    vKeys(2) = Leer
  • Die Abfrage, die von ArgumentsForBusinessObject zurückgegeben wird, ist
    SELECT * FROM Person ORDER BY LastName, FirstName, Unique_ID
    WHERE ? > ?
    und die den Feldnamen FirstName und den Wert ("David") besitzenden colArgs. ExecuteQuery vereinigt die Argumente mit der SQL-Anweisung wie zuvor und gibt den Wert zurück.
  • Ende
  • Nach der fünften Iteration wird der Ergebnissatz nur 2 Datensätze besitzen. Wenn die Steuerungseinheit 206 die zurückgegebene Sammlung verarbeitet, ist der von ProcessObjectCollection zurückgegebene Zähler kleiner als nMaxRows + 1, was angibt, dass alle Datensätze wiedergewonnen worden sind.
  • SICHERHEITSRAHMEN
  • Realisierung
  • Die 8 zeigt eine Darstellung des Sicherheitsrahmens 800 und seiner Hauptkomponenten.
  • Es kann aus der 8 ersehen werden, dass das Sicherheitsobjekt 802 bei dem Client vorhanden ist und eine Sicherheits-API bei dem Server bereitgestellt ist. Das Sicherheitsobjekt 802 stellt ein für ein Autorisieren jeder Operation verantwortliches Verfahren bereit, wobei ihm die Struktur vMsg, eine Operations-ID und ein den Kontext der Operation beschreibender optionaler Parameter zugewiesen werden.
  • Client
  • Benutzerauthentifizierung:
  • Eine Benutzerauthentifizierung wird über ein sich in dem Sicherheitsobjekt 802 befindendes Verfahren namens IsOperAuthorized gehandhabt. Während das Anwendungsobjekt lädt, ruft es vor einem Ausführen einer weiteren Verarbeitung das Verfahren IsOperAuthorized auf, wobei die Operation "Anmeldung" ist. Dieses Verfahren ruft anschließend eine Authentifizierungs-DLL, die für ein Identifizieren des Benutzers als einen autorisierten Benutzer innerhalb der Firmensicherheit verantwortlich ist, auf.
  • UI-Steuerungseinheiten:
  • Die UI-Steuerungseinheiten begrenzen einen Zugriff auf ihre Funktionen durch ein Beschränken des Zugriffs auf spezifische Widgets durch ein Freigeben und Sperren derselben. Die Logik für das Freigeben und Sperren von Widgets verbleibt auf der UI-Steuerungseinheit 206, aber die Logik zum Bestimmen, ob ein Benutzer Zugriff auf eine spezifische Funktionalität hat, befindet sich in der Form von Geschäftsregeln in dem Sicherheitsobjekt 802. Die UI-Steuerungseinheit 206 ruft das Verfahren IsOperAuthorized auf, um den Zustand ihrer Widgets einzustellen.
  • Server
  • Die Serversicherheit wird durch ein Beschränken des Zugriffs auf die Daten auf drei verschiedene Weisen realisiert:
  • Serversicherheitsverfahren
  • Serverkomponenten 222 rufen die API IsOperAuthorized in der Architektur auf, bevor jede Operation ausgeführt wird. In allen Fällen gibt das Sicherheitsobjekt 802 einen booleschen Wert gemäß den Zugriffsrechten des Benutzers und den Geschäftsregeln zurück.
  • SQL-Filterung
  • Nimmt Sicherheitsattribute wie eine Anspruchsempfindlichkeit oder eine öffentliche/private Dateinotiz in die SQL-Anweisungen auf, wenn Zeilen ausgewählt oder aktualisiert werden. Dies beschränkt den sich ergebenden Datensatz effizient und vermeidet die Rückgabe von beschränkten Daten zu dem Client.
  • Beschreibung
  • Jede sich auf die GUI beziehende Sicherheit wird unter Verwendung des Sicherheitsobjekts 802 bei dem Client realisiert. Die Informationen sind sowohl bei dem Clientprofil als auch Geschäftsobjekten 207 verfügbar, was es ermöglicht, die Sicherheitsregeln richtig auszuwerten.
  • IsOperAuthorized wird aufgerufen, um bei dem Laden einer UI oder falls einen Änderung des Zustands in der UI vorhanden ist Widgets einzustellen.
  • Die Benutzerauthentifizierung wird immer durch die Anwendungsobjekte 202 verwendet, um ein Benutzerprivileg zum Starten der Anmeldung zu validieren.
  • Die SQL-Filterung wird in den Fällen, in denen empfindliche Daten nicht einmal bei dem Client verfügbar sein dürfen oder in denen ein großer Vorteil bei dem Verringern der Größe des zu dem Client zurückgegebenen Datensatzes vorhanden ist, verwendet.
  • Die SQL-Filterung wird nur in sehr seltenen Fällen, in denen die Leistung eine ernsthafte Angelegenheit ist, verwendet. Sie wird vorsichtig verwendet, um eine gesteigerte Komplexität und Leistungsauswirkungen zu vermeiden, da einige Abfragen beschwerlich sein können und ein Einbetten von Sicherheit bei ihnen die Komplexität sogar noch mehr steigern könnte.
  • Sicherheitsrahmen
  • Überblick
  • Das Sicherheitsobjekt 802 dient dem Zweck des Haltens von fest eingebauten Geschäftsregeln zum Gewähren oder Verweigern eines Benutzerzugriffs für verschiedene Anwendungsfunktionen. Diese Informationen werden zu den UI-Steuerungseinheiten 206, die die notwendigen Modifikationen bei dem UI-Zustand ausbilden, zurückgegeben. Das Clientprofilobjekt bzw. ClientProfile-Objekt dient dem Zweck des Speicherns von benutzerspezifischen (und statischen) Sicherheitsinformationen im Cache direkt auf dem Client. Diese Informationen sind zum Auswerten der Geschäftsregeln bei dem Sicherheitsobjekt 802 notwendig.
  • Beziehungen
  • Die 9 zeigt die Beziehungen zwischen dem Sicherheitselement und anderen Elementen.
  • Architekturobjekt
  • Das TechArch-Objekt ist für ein Bereitstellen eines Zugriffs und ein Aufrechterhalten des Zustands der Objekte Clientprofil bzw. ClientProfile 902 und Sicherheit bzw. Security 802 verantwortlich. Das Clientprofilobjekt 902 wird in den Initialisierungs- bzw. Beendungsverfahren von TechArch instanziiert und zerstört. Dieses Objekt wird durch eine Instanzvariable bei dem TechArch-Objekt instand gehalten.
  • CInitCompCCA
  • Das CInitCompCCA-Objekt 904 stellt zwei Dienste für das Architekturobjekt 200 bereit, es dient als ein Zugriffspunkt für den CInitComp-Server 906, und es führt das eingestellte Abfrageergebnis in ein Clientprofilobjekt 902.
  • CInitComp
  • Das CInitComp-Server-Objekt 906 stellt einen Datenzugriff auf die Daten, die sich in den Organisationstabellen 908 befinden, bereit. Diese Daten sind auf dem Client verwendbar, um eine Stufe des Zugriffs auf Daten basierend auf fest eingebauten Geschäftsregeln zu bestimmen.
  • Organisationstabellen
  • Die Organisationstabellen 908 enthalten Benutzer-, Angestellten- und Einheitsinformationen, die zum Aufbauen der Hierarchie von Informationen, die zum Bestimmen einer Stufe des Zugriffs auf empfindliche Informationen notwendig ist, notwendig sind.
  • Clientprofil
  • Das Clientprofilobjekt 902 dient dem Zweck des Speicherns von statischen, benutzerspezifischen Sicherheitsinformationen im Cache direkt auf dem Client. Diese Informationen sind zum Bestimmen einer Datenzugriffsstufe von Informationen für den Benutzer notwendig, was erreicht wird, indem die notwendigen Werte zu dem Sicherheitsobjekt 802 geleitet werden.
  • Sicherheitsobjekt
  • Das Sicherheitsobjekt 802 enthält Geschäftsregeln, die zum Bestimmen von Zugriffsprivilegien eines Benutzers in Bezug auf spezifische Funktionen verwendet werden. Das Objekt akzeptiert gewisse Parameter, die durch die verschiedenen UI-Steuerungseinheiten 206 eingeleitet werden, und gibt sie an die Geschäftsregellogik weiter, die dann wieder das Clientprofilobjekt 902 nach spezifischen Benutzerinformationen befragt.
  • Clientprofil
  • Attribute
  • Das Folgende sind interne Attribute für das Clientprofilobjekt 902. Diese Attribute werden der Anwendung nicht gezeigt und sollten nur durch das Sicherheitsobjekt 802 verwendet werden:
  • • sProfile
  • Dieses Attribut wird durch die ältere (legacy) Anwendung bei der Startprozedur weitergegeben und enthält die TSIds, den Extern-Indikator, den Zählwert von Gruppenelementen und Gruppenelemente des Benutzers. Es wird durch eine Anforderung von den Anwendungsobjekten in diese Attribute geführt.
  • • colSpecialUsers:
  • Dieses Attribut speichert Informationen aus einer spezielle Benutzer, die nicht in eine der beschriebenen Rollen passen, wie beispielsweise einen Organisationsbibliothekar enthaltenden Tabelle im Cache. (Zum Beispiel der stellvertretende Vorsitzende oder Vorstandsvorsitzende der Firma.)
  • • sTSId:
  • Dies ist die TSId des derzeitigen Benutzers, und sie entspricht seiner/ihrer Windows-NT-Id. Sie wird zum Gewinnen von Informationen über den derzeit angemeldeten Benutzer aus den Organisationstabellen 908 verwendet.
  • • sEmployeeId:
  • Diese entspricht der Angestellten-Id des Benutzers wie in den Organisationstabellen 908 gespeichert. Sie wird gegen die eingeleitete Angestellten-Id verwendet, um eine Beziehung zwischen Ausführenden und dem derzeitigen Benutzer zu überprüfen.
  • • sEmployeeName, sEmployeeFirst, sEmployeeMI und sEmployeeLast:
  • Alle diese Attribute entsprechen dem Namen des derzeitigen Benutzers.
  • • dictClientPrivileges:
  • Dieses Attribut enthält eine Sammlung von Identifizierungen, die angeben, welche Rolle/Befugnis eine Einzelperson spielt/besitzt. Dieser Wert wird zum Identifizieren der statischen Rolle des angemeldeten Benutzers verwendet.
  • Diese Werte werden für eine Sicherheitsgeschäftslogik verwendet, die basierend darauf, ob der Benutzer intern oder extern ist oder ob der Benutzer sich in einer gegebenen administrativen Rolle befindet, einen Zugriff gewährt oder verweigert. Vorhandene Werte sind die folgenden:
    • • SC – gibt Befugnis für empfindlichen Anspruch an
    • • CC – gibt Befugnis zum Ändern von Anspruchsstatus an
    • • MT – gibt Befugnis zum Warten von F&C-Vorlagen an MO – gibt Befugnis zum Warten von Organisation an
    • • MR – gibt Befugnis zum Warten von Rollen an
  • Das Folgende sind die vorgeschlagenen Hinzufügungen:
    • • TA – gibt Befugnis zum Ausführen von Aufgabenassistent an
    • • FN – gibt Befugnis zum Ausführen von Dateinotizen an
    • • CH – gibt Befugnis zum Ausführen von Anspruchsverlauf an
    • • TL – gibt Befugnis zum Warten von Aufgabenvorlagen an
  • • dictProxyList:
  • Dieses Attribut enthält eine Berichterstattungshierarchie eines Angestellten. Es wird zum Bestimmen, ob der derzeitige Benutzer/Angestellte eine Erlaubnis zum Durchführen einer Aktion hat, basierend auf seiner/ihrer Beziehung zu anderen Benutzern/Angestellten in der Hierarchie verwendet. Ein Geschäftsbeispiel dafür ist der Fall eines Vorgesetzten, der Rechte zum Betrachten von Informationen, zu denen seine/ihre Untergebenen Zugriff haben, hat. Die Beziehungs-APIs benutzen dictProxyList zum Bestimmen, ob der den Informationen zugewiesene Benutzer ein Vorgesetzter oder Untergebener des derzeitigen Benutzers ist.
  • • boolInternal:
  • Dieses Attribut gibt an, ob der angemeldete Benutzer extern oder intern ist. Es wird auch aus dem durch die ältere Anmeldung eingeleiteten Attribut sProfile geführt.
  • Öffentliche Verfahren
  • Das Folgende sind die durch das Clientprofilobjekt gezeigten APIs. Diese APIs werden durch das Sicherheitsobjekt zur Sicherheitsüberprüfung verwendet und sollten nicht in irgendeinem Abschnitt der Anwendung durch die Entwickler verwendet werden.
  • • GetAuthorizedEmployees As Collection
  • Diese Funktion gibt eine Sammlung von Angestellten-Ids von den durch den derzeitigen Benutzer überwachten Angestellten zurück.
  • • IsSuperOf(sUserId) As Boolean
  • Diese API gibt wahr zurück, falls der angemeldete Benutzer ein Vorgesetzter der eingeleiteten Benutzer-Id ist. Sie schlägt den sUserId-Wert in dem Attribut dictProxyList nach.
  • • IsRelativeOf(sUserId) As Boolean
  • Diese API gibt wahr zurück, falls die eingeleitete Benutzer-Id entweder dem angemeldeten Benutzer oder jemandem aus der dictProxyList entspricht
  • • IsInternal As Boolean
  • Dies API wird dazu verwendet, dem Benutzer basierend darauf, ob die Daten für die Organisation privat sind und ob der Benutzer intern oder extern ist, einen Zugriff auf Informationen zu gewähren oder zu beschränken.
  • • IsInRole(sRole) As Boolean
  • Diese API schlägt den in dem Attribut dictClientRoles enthaltenen passenden SRole-Wert nach, um zu bestimmen, ob der derzeitige Benutzer zum Spielen der Rolle autorisiert ist.
  • Die folgenden Accessoren werden zum Gewinnen von Daten aus dem Objekt des Clientprofils verwendet:
    • • UserId: gibt sTSId zurück
    • • EmployeeId: sEmployeeId zurückgeben
    • • EmployeeName: gibt sEmployeeName zurück
    • • EmployeeFirstName: gibt sEmployeeFirst zurück
    • • EmployeeLastName: gibt sEmployeeLast zurück
    • • EmployeeMiddleInitial: gibt sEmployeeMI zurück
    • • ExpandTree: gibt boolExpandTreePreference zurück
    • • TemplatePathReference: gibt sTemplatePathPreference zurück
  • Sicherheitsobjekt
  • Öffentliche Verfahren
  • Die folgende API wird durch das Sicherheitsobjekt gezeigt und wird durch die Anwendung zur Sicherheitsüberprüfung verwendet:
  • • IsOperAuthorized(vMsg As Variant, nOperations As cmOperations, vContext As Variant) as Boolean
  • Diese API wird abhängig davon, was von den Geschäftsregelfunktionen zum Bestimmen von Benutzerzugriffsstufen zurückgegeben wird, wahr oder falsch zurückgeben. Diese API wird in zwei Situationen aufgerufen:
    • 1. Wenn vor einem Laden des Formulars der Anfangzustand eingestellt wird. Falls eine Sicherheitsanforderung vorhanden ist, wird IsOperAuthorized für die passende Operation aufgerufen.
    • 2. Nach jeder relevanten Änderung bei dem UI-Zustand. Wenn zum Beispiel ein empfindlicher Anspruch in dem Aufgabenassistentenfenster hervorgehoben wird. Eine relevante Änderung ist eine, die den Bedarf an einer Sicherheitsüberprüfung mit sich bringt.
  • Die gültigen Werte für die Aufzählung und die entsprechenden Kontextdaten sind:
    • • cmMaintainFormsCorr (keine)
    • • cmRunEventProcessor (keine)
    • • cmWorkOnSensitiveClaim (ein Anspruchsobjekt)
    • • cmMaintainPersonalProfile (keine)
    • • cmMaintainWorkplan (keine)
    • • cmDeleteFileNote (ein Dateinotizobjekt)
    • • cmMaintainTaskLIbrary (keine)
    • • cmMaintainOrg (keine)
  • Serversicherheits-APIs
  • • IsSVCOperAuthorized (vMsg As Variant, sOperations As String, vContext As Variant) as Boolean
  • Diese API wird durch jedes Verfahren auf dem Server, das Daten persistent macht oder potentiell auf empfindliche Daten zugreifen kann, aufgerufen (reagierender Ansatz).
  • • IsOperAuthorized (vMsg As Variant, nOperations As cmOperations, vContext As Variant) as Boolean
  • Diese API ist für die Fälle, in denen eine Eigeninitiative zeigende Sicherheitsüberprüfung auf dem Server benötigt wird, verfügbar.
  • Realisierungsbeispiele
  • Die folgenden Beispiele zeigen einige Wege zum Realisieren der vorstehend beschriebenen Optionen:
  • Client
  • • Geschäftslogik
  • IsOperAuthorized
  • Es wird der Fall des Aufgabenassistentenfensters betrachtet, in dem es dem Benutzer nicht erlaubt sein sollte, sich irgendwelche Informationen über einen empfindlichen Anspruch anzusehen, falls er/sie nicht der Anspruchsausführende oder der Vorgesetzte des Ausführenden ist. Der folgende Code wäre bei der Steuerungseinheit:
  • Figure 01880001
  • Es wird der Fall des Korrespondenz-Warten-Suche-Fensters (Maintain Correspondence Search window) betrachtet, in dem es nur einem Benutzer, der ein Formular- und Korrespondenzbibliothekar ist, erlaubt werden sollte, eine Vorlage zu löschen. Der folgende Code wäre bei der Steuerungseinheit:
  • Figure 01890001
  • Server
  • • SQL-Filterung:
  • Es wird der Fall des Entwurfsdateinotizfensters betrachtet, in dem ein Benutzer nur auf die Entwurfsdateinotizen schauen kann, deren Autor er/sie ist. Bei der Steuerungseinheit würde man haben:
    Figure 01890002
    Und bei der Komplemente wäre die SQl-Anweisung:
  • Figure 01900001
  • Diese Anwendung läuft als ein Hintergrundprozess oder -dienst ohne eine direkte Interaktion mit Clientanwendungen auf dem Server, so dass sie keine sich auf die GUI beziehende Sicherheit benötigt. Grundsätzlich sind ihre Hauptaktionen auf die Erzeugung von neuen Aufgaben im Ansprechen auf extern erzeugte Ereignisse beschränkt, oder sie tut genauer Folgendes:
    • • Sie liest statische Informationen aus den Aufgabenvorlagentabellen;
    • • Sie liest Ereignisse aus den Ereignistabellen;
    • • Sie fügt Aufgaben in die Aufgabentabelle ein.
  • In diesem Sinne ist ihre Sicherheit gänzlich von externen Einheiten abhängig, wie nachstehend beschrieben:
    • • Die Aufgabenbibliotheksanwendung ist der Zugangspunkt für irgendwelche Änderungen bei den Aufgabenvorlagendatenbanktabellen. Sie wird die vorstehend beschriebenen Optionen nutzen, um ihre Sicherheitsanforderungen zu erfüllen.
    • • Ereignisse werden von älteren Anwendungen erzeugt, so dass die Aufgabeneinheit sich vollständig auf die für diese Anwendungen realisierte Sicherheit stützt, um die Erzeugung von Ereignissen zu steuern.
    • • Eine andere Stufe der Sicherheit für die Ereigniserzeugung stützt sich auf die Datenbankautorisierungs- und -authentifizierungsfunktionen. Nur autorisierte Komponenten haben Zugriff auf die Datenbanktabellen (dies ist ebenso für alle die anderen Anwendungen gültig).
  • ANSPRUCHSORDNER
  • Definition
  • Der Anspruchsordner verwaltet Anspruchsinformationen von einer ersten Mitteilung ganz durch ein Schließen und Archivieren. Er tut dies durch ein Bereitstellen einer strukturierten und leicht zu verwendenden Schnittstelle, die mehrere Geschäftsprozesse zum Handhaben von Ansprüchen unterstützt. Die Informationen, die er erfasst, werden vielen anderen Komponenten zugeführt, die es Anspruchsfachleuten ermöglichen, vorbereitende Anwendungen, die ihr Arbeitspensum verringern, zu nutzen. Da immer noch physische Anspruchsdateien erforderlich sind, stellt der Anspruchsordner Fähigkeiten bereit, die ein Verfolgen von physischen Dateien unterstützen. Er arbeitet mit dem ÄLTEREN System bzw. LEGACY-System, um alle die Fähigkeiten, die in dem derzeitigen System vorhanden sind, zu unterstützen.
  • Die durch den Anspruchsordner unterstützten primären Prozesse sind:
  • • Erste Mitteilung von Schadensfall
  • Der Anspruchsordner ist der primäre Eintragungspunkt für neue Schadensfallinformationen. Anspruchsdateien sind in dem Anspruchsordner vorhanden, bevor sie in das LEGACY-System "gepusht" bzw. "geschoben" werden, um eine finanzielle Verarbeitung durchzuführen.
  • • Anspruchserkundigung
  • Der Anspruchsordner unterstützt interne und externe Erkundigungen nach Anspruchsinformationen. Der Ordnerentwurf ermöglicht aus vielen verschiedenen Gründen einen schnellen Zugriff auf verschiedene Ebenen von Informationen in dem Anspruch.
  • • Einleitung von Anspruchshandhabung
  • Der Anspruchsordner stellt anfängliche Schadensfallinformationen für die Anspruchsfachleute bereit, so dass sie den Prozess des Ausbildens von ersten Kontakten mit passenden Teilnehmern an dem Anspruch beginnen können. Er ermöglicht es ihnen, durch ihre anfänglichen Kontakte und eine Untersuchung erhaltene Daten zu betrachten und einzutragen.
  • • Untersuchung und Auswertung
  • Der Anspruchsordner stellt einen Zugriff auf für den Untersuchungs- und Auswertungsprozess benötigte detaillierte Informationen bereit. Er ermöglicht es den Anspruchshandhabern, zwischen allen den Anwendungen und Informationen, die sie zum Unterstützen dieser Prozesse benötigen, zu navigieren.
  • • Identifizieren von Anspruchsereignissen
  • Der Anspruchsordner identifiziert während des Bestehens eines Anspruchs auftretende entscheidende Ereignisse wie beispielsweise eine Änderung des Status, die Antworten bei anderen Komponenten zum Durchführen automatisierter Funktionen auslösen können, wie ein Auslösen von Aufgaben in dem Aufgabenassistent.
  • • Verwalten der physischen Datei
  • Der Anspruchsordner unterstützt bessere Verfolgungsfähigkeiten für die physischen Dateien, die mit dem elektronischen Datensatz eines Anspruchs einhergehen.
  • Wert
  • Durch ein Erfassen von detaillierten Informationen über Ansprüche versucht der Anspruchsordner, die Effizienz von Anspruchsfachleuten auf vielen Wegen zu verbessern. Erstens ist weniger Einarbeitung zum Finden von grundlegenden Informationen zum Unterstützen einer beliebigen Anzahl von Erkundigungen erforderlich, da die Informationen in einem logischen, leicht zu verwendenden Format organisiert sind. Zweitens verwendet der Anspruchsordner seine Informationen zum Unterstützen von anderen Anwendungen wie Formularen und Korrespondenz, so dass Anspruchsinformationen nicht jedes Mal, wenn sie benötigt werden, neu eingetragen werden müssen. Drittens stellt er bessere Wege zum Finden von physischen Dateien zum Verringern der für ein Finden derselben und Arbeiten mit ihnen erforderlichen Zeit bereit. Darüber hinaus sind viele andere potentielle Verwendungen von Anspruchsordnerinformationen vorhanden.
  • Der Anspruchsordner versucht auch, einige der derzeitigen Verarbeitungsanforderungen zu überwinden, die das LEGACY-System auferlegt, wie beispielsweise ein Aufzeichnen von Schadensfällen ohne Ansprüche, ein Erfordern von Versicherungsscheinnummern zur Anspruchseinrichtung, ein Erfordern von Reserven für Leitungen und andere Beschränkungen. Dies wird einige der geringwertigen zusätzlichen Arbeit, die zum Füttern des LEGACY-Systems erforderlich ist, verringern.
  • Schließlich organisiert und koordiniert der Anspruchsordner Informationen über Teilnehmer und Ausführende, so dass alle an einem Anspruch beteiligten Leute schnell und leicht identifiziert werden können.
  • Schlüsselbenutzer
  • Obwohl Anspruchsfachleute die primären Benutzer des Anspruchsordners sind, kann jeder Anspruchsfachmann den Anspruchsordner nutzen, um von einem Anspruch zu erfahren oder eine Erkundigung über einen Anspruch zu beantworten.
  • Komponentenfunktionalität
  • Da der Anspruchsordner der primäre Zugangspunkt für neue Ansprüche ist, muss er zum Einrichten neuer Ansprüche notwenige Informationen erfassen und dazu in der Lage sein, die Informationen an das LEGACY-System weiterzugeben. Sobald die Informationen weitergegeben sind, besitzt das LEGACY-System alle in beiden Systemen enthaltenen Informationen, und sie sind in dem Anspruchsordner nicht bearbeitbar. Der Anspruchsordner hat jedoch mehr Informationen als das, was in dem LEGACY-System enthalten ist, und ermöglicht es daher, gewisse Informationen einzutragen und zu modifizieren, wenn der Anspruch einmal zu dem LEGACY-System geschoben ist.
  • Der Anspruchsordner zerlegt einen Anspruch in verschiedene Ebenen, die den Versicherungsschein, den Versicherten, den Anspruch, die Anspruchsteller und die Linien des Anspruchstellers widerspiegeln. Jede Ebene hat einen strukturierten Satz von Informationen, die auf sie Anwendung finden. Die Anspruchsebene des Anspruchs hat zum Beispiel Informationen über den Anspruchsstatus, den Geschäftszweig und die Ausführenden. Eine Einzellinie hat Informationen, die den Linientyp, die Zuständigkeit und Sach- oder Fahrzeugschäden einschließen. Die Anspruchstellerebene enthält Kontaktinformationen sowie Verletzungsbeschreibungen.
  • Die Informationen auf jeder Ebene sind zu Organisationszwecken in Abschnitte gruppiert. Jede Ebene hat einen Detailabschnitt, der die grundlegenden Informationen über die Ebene aufweist.
  • Die Schlüsselebenen in dem Anspruchsordner und ihre Informationsabschnitte sind:
    • • Die Versicherungsscheinebene: Details und versichertes Auto für Autoansprüche, versichertes Eigentum für Sachansprüche und versicherte Yacht für Schiffsansprüche.
    • • Die Anspruchsebene: Details, Fakten von Schadensfall, Ereignisse, Haftung. Die Haftung wird als Teil der Verhandlungskomponente betrachtet und dort beschrieben.
    • • Die Teilnehmerebene: Details und Kontaktinformationen. Für Anspruchsteller werden zusätzliche Abschnitte gezeigt, um Ereignisse, Verletzung und Invaliditätsverwaltung anzuzeigen. Die Teilnehmerebene wird bei der Teilnehmerkomponente erörtert.
    • • Die Linienebene: Details, beschädigtes Fahrzeug für Fahrzeuglinien, beschädigtes Eigentum für Sachlinien, beschädigte Yacht für Schiffslinien, Ereignisse, Schäden und Verhandlung. Schäden und Verhandlung werden als Teil der Verhandlungskomponente betrachtet und dort beschrieben.
  • Ereignisse werden in dem Anspruchsordner ausgelöst, indem gewisse Aktionen wie ein Ändern einer Zuständigkeit, ein Identifizieren einer Verletzung oder ein Schließen einer Linie durchgeführt werden. Andere allgemeine Ereignisse werden in dem Ereignisabschnitt auf den meisten Ebenen ausgelöst, indem dasjenige angeklickt wird, das aufgetreten ist. Diese Ereignisse werden durch die Ereignisverarbeitungseinheit verarbeitet und könnten eine beliebige Anzahl von Antworten erzeugen. Bei einem Ausführungsbeispiel der vorliegenden Erfindung besteht die primäre Antwort darin, neue Aufgaben in dem Aufgabenassistent für einen Anspruch auszulösen.
  • Benutzerschnittstellen
    • • Anspruchsordner-UI
    • • Versicherungsscheinebene – Versicherungsscheindetailtabelle
    • • Versicherungsscheinebene – Versichertes-Fahrzeug-Tabelle
    • • Versicherungsscheinebene – Versichertes-Eigentum-Tabelle
    • • Versicherungsscheinebene – Versicherte-Yacht-Tabelle
    • • Anspruchsebene – Anspruchsdetailtabelle
    • • Anspruchsebene – Fakten-von-Schadensfall-Tabelle
    • • Anspruchsebene – Ereignistabelle
    • • Anspruchsebene – Haftungstabelle
    • • Linienebene – Liniendetailtabelle
    • • Linienebene – Beschädigtes-Eigentum-Tabelle
    • • Linienebene – Beschädigtes-Auto-Tabelle
    • • Linienebene – Beschädigte-Yacht-Tabelle
    • • Linienebene – Ereignistabelle
    • • Linienebene – Schadenstabelle
    • • Linienebene – Verhandlungstabelle
    • • Aufgabenassistent
    • • Dateinotizen
    • • Anspruchsverlauf
    • • Suche Aufgabenvorlage
    • • Suche nach Korrespondenz
    • • Finde Ansprüche
    • • Version 7
    • • Betrachte Dateiordner
    • • Drucke Etikett
  • ANSPRUCHSORDNERBAUM- UND -MENÜENTWURF
  • Anspruchsbaum
  • Der Anspruchsbaum in dem Anspruchsordnerfenster zerlegt den Anspruch abhängig von der spezifischen Zusammensetzung des Anspruchs in Versicherungsschein-, Versicherten-, Anspruchs-, Anspruchsteller- und Linienebenen.
  • Die Versicherungsscheinebene ist immer der erste Knoten in dem Anspruchsbaum und wird durch die Versicherungsscheinnummer identifiziert. Bevor die Versicherungsscheinnummer eingetragen ist, wird das Feld "Unbekannt" aufgelistet. Falls ein Anspruch uncodiert ist, wird das Feld als "Uncodiert" aufgelistet. Ein Auswählen der Versicherungsscheinebene bringt die Versicherungsscheinebenentabellen in dem Hauptteil des Anspruchsordners hoch.
  • Die Versichertenebene ist immer der zweite Knoten in dem Anspruchsbaum und wird durch den Namen des Versicherten identifiziert. Bevor der Versicherte identifiziert ist, wird das Feld als "Unbekannt" aufgelistet. Ein Auswählen der Versichertenebene bringt die Versicherter-Teilnehmer-Tabellen in dem Hauptteil des Anspruchsordners hoch. Nur ein Versicherter wird auf dieser Ebene als in den Versichertenscheinebenentabellen identifiziert aufgelistet, es können jedoch immer noch mehrere Versicherte hinzugefügt werden. Zusätzliche Versicherte werden in der Teilnehmerliste unter dem Anspruchsbaum gezeigt.
  • Die Anspruchsebene ist immer der dritte Knoten in dem Anspruchsbaum und wird durch die Anspruchsnummer identifiziert. Wenn die Anspruchsebene ausgewählt wird, erscheinen die Anspruchsebenentabellen in dem Hauptteil des Anspruchsordners.
  • Nach der Anspruchsebene werden alle Anspruchsteller mit ihren zugeordneten Linien in einem Hierarchieformat aufgelistet. Wenn ein Anspruchsteller hinzugefügt wird, wird ein Knoten zu dem Baum hinzugefügt, und das den Anspruchsteller identifizierende Feld wird als "Unbekannt" aufgelistet. Sobald ein Teilnehmer identifiziert worden ist, parteiisch oder Kunde, wird der Name des Anspruchstellers auf der Ebene aufgelistet. Wenn die Ebene ausgewählt wird, werden die Teilnehmerebenentabellen für den Anspruchsteller in dem Hauptteil des Anspruchsordners gezeigt.
  • Linienebenen werden durch ihren Linientyp identifiziert. Bevor ein Linientyp ausgewählt ist, wird die Linienebene als "Unbekannt" aufgelistet. Wenn eine Linienebene ausgewählt wird, werden die Linienebenentabellen für die spezifische Linie in dem Hauptteil des Anspruchsordners gezeigt.
  • Es sind mehrere Dinge vorhanden, die den Anspruchsbaum verändern können, wenn er einmal eingerichtet ist. Erstens wird dann, wenn ein Anspruchsteller oder eine Linie gelöscht wird, er oder sie aus dem Anspruchsbaum entfernt. Ein Anspruch, der irrtümlicherweise markiert wird, ändert das Aussehen der Ebenen nicht. Zweitens werden der Anspruch, der Anspruchsteller und die Linienebenen abhängig davon, ob sie zu V7 geschoben werden oder nicht, durch verschiedene Symbole identifiziert. Drittens wird dann, wenn eine Linie oder ein Anspruchsteller ausgeglichen ist, sie oder er derart identifiziert.
  • Teilnehmerliste
  • Das Teilnehmerlistenfeld enthält alle die Nichtanspruchsteller- und Nichtversicherten-Teilnehmer an dem Anspruch. (Anspruchsteller und Versicherte werden in dem Anspruchsbaum gezeigt und hier nicht wiederholt.) Teilnehmer werden mit ihrem Namen und ihrer Rolle gezeigt. Wenn ein Teilnehmer ausgewählt wird, werden die Teilnehmerebenentabellen in dem Anspruchsordner angezeigt.
  • Anspruchsordnermenüpunkte
  • Die Anspruchsordnermenüs enthalten die Aktionen, die ein Benutzer in dem Anspruchsordner durchführen müsste. Auf alle von ihnen kann durch eine Tastaturauswahl zugegriffen werden. Die Menüoptionen werden basierend auf dem Zustand des Anspruchsordners freigegeben oder gesperrt. Der Anspruchsordner kann sich für eine spezifische Ebene in dem Anspruchsbaum in einer Betrachtungsbetriebsart oder einer Bearbeitungsbetriebsart befinden. Wenn der Anspruchsordner sich in der Bearbeitungsbetriebsart befindet, sind die meisten Optionen gesperrt, bis der Benutzer seine Änderungen sichert und zu der Betrachtungsbetriebsart zurückgeführt wird. Das Freigeben/Sperren von Menüoptionen hängt auch davon ab, ob der Anspruch oder Abschnitte des Anspruchs zu V7 geschoben worden sind.
  • Anspruchsordnersymbolleiste
  • Die Symbolleiste stellt eine übliche Aktion, die ein Benutzer durchführt, dar, auf die leicht durch ein Anklicken des passenden Symbols zugegriffen werden kann. Es sind fünf Schaltflächengruppen auf der Anspruchsordnersymbolleiste vorhanden, die der Reihenfolge nach übliche Aktivitäten, ein Hinzufügen von neuen Elementen zu einem Anspruch, ein Starten von Dienstprogrammen, ein Durchführen von V7-Aktivitäten und ein Zugreifen auf Hilfsfunktionen darstellen. Das Freigeben/Sperren von Symbolleistenschaltflächen folgt der gleichen Logik wie für Menüpunkte. Fensterbeschreibung
    Figure 02000001
    Figure 02010001
    Figure 02020001
    Figure 02030001
    Figure 02040001
    Figure 02050001
    Figure 02060001
    Figure 02070001
    Figure 02080001
    Figure 02090001
    Figure 02100001
    Figure 02110001
    Figure 02120001
    Figure 02130001
    Figure 02140001
    Fensterdetails
    Figure 02140002
    Figure 02150001
    CAR-Diagramm
    Figure 02150002
    Figure 02160001
    Figure 02170001
    Figure 02180001
    Figure 02190001
    Figure 02200001
    Figure 02210001
    Figure 02220001
    Figure 02230001
    Datenelemente
    Figure 02230002
    Figure 02240001
    Übertragungspunkte
    Anspruch | Sichern-Menüoption – Sichert alle Anspruchsebenendaten
    Versicherungsschein | Sichern-Menüoption – Sichert alle Versicherungsebenendaten
    Teilnehmer | Sichern-Menüoption – Sichert alle Teilnehmerebenendaten
    Linie | Sichern-Menüoption – Sichert alle Linienebenendaten
    Anspruch | Schließe-Anspruchsordner-Menüoption – Fordert Benutzer zum Sichern von Änderungen auf, falls in Bearbeitungsbetriebsart.
  • ANSPRUCHSVERLAUF
  • Definition
  • Der Anspruchsverlauf zeigt Informationen in einer Benutzerschnittstelle, die alle die einen Bestandteil bildenden Elemente einer Anspruchsdatei aufweisen soll. Die vier in der Komponente enthaltenen Typen von Verlauf sind gemäß gemeinsamen Indizierungskriterien wie Teilnehmer, Ausführender und Anspruchsphase durchsuchbar. Es kann ein Titelbericht (caption report) produziert werden, der den in einem Dokumentformat ausgewählten Verlauf zeigt.
  • Wert
  • Der Anspruchsverlauf versieht die Benutzer mit einer gemeinsamen Schnittstelle, durch die eine große Vielfalt von Informationen über den Anspruch zu betrachten ist. Er enthält den ganzen für einen Anspruch verfügbaren Verlauf und wird erweitert, indem Anspruchsfähigkeiten wie eine Erfassung von eingehender Post aufgebaut werden. Benutzer entwickeln anpassbare Ansichten des Verlaufs basierend auf irgendwelchen Kriterien, gemäß denen der Verlauf indiziert werden kann, und diese Berichte werden als anpassbare Word-Dokumente gesichert. Die Weise, auf die Verlaufsinformationen indiziert werden, stellt einen schnellen Zugriff auf einschlägige Daten, die zum Antworten auf eine Vielfalt von Anforderungen benötigt werden, bereit.
  • Schlüsselbenutzer
  • Alle Mitglieder der Anspruchsorganisation können den Anspruchsverlauf als einen Weg zum schnellen Sehen der ganzen bei einem Anspruch durchgeführten Aktivität verwenden. Dieser Nutzen steigert die Fähigkeit zum Lokalisieren von Schlüsselinformationen bezüglich eines beliebigen Anspruchs.
  • Komponentenfunktionalität
  • Der Anspruchsverlauf ist eine Komponente, die einen einfachen Prozess zum Wiedergewinnen des Verlaufs von den anderen Komponenten in dem System enthält. Er enthält selbst keine eigentlichen Daten. Selbst ein Betrachten eines Verlaufselements wird in dem Komponentenfenster, in dem das Element zuerst erfasst wurde, ausgeführt.
  • Der zweite Schlüsselprozess des Anspruchsverlaufs besteht darin, einen Titelbericht von allen Verlaufselementen gemäß den Elementen, die der Benutzer aufnehmen möchte, zu produzieren.
  • Es werden zwei Benutzerschnittstellen für diese Komponente benötigt, die den vorstehenden zwei Schlüsselfunktionen entsprechen:
    • • Anspruchsverlaufssuche: Dieses Fenster nutzt die Anspruchsphasen-, Teilnehmer-, Ausführenden- und Verlaufstypfelder in jedem Verlaufsdatensatz, um dem Benutzer dabei zu helfen, die Suche nach einem spezifischen Verlauf einzugrenzen.
    • • Titelbericht: Dieser Bericht verwendet die Funktionalität von Word zum Produzieren eines Berichts über jedes Verlaufselement, das der Benutzer sehen möchte, und sein zugeordnetes Detail. Da der Bericht in Word produziert wird, kann er gemäß vielen verschiedenen Bedürfnissen vollständig angepasst werden.
  • Benutzerschnittstellen
    • • Anspruchsverlaufssuche
    • • Titelbericht (Word-Dokument, nicht UI-Entwurf)
  • FORMULARE UND KORRESPONDENZ
  • Definition
  • Die Komponente Formulare & Korrespondenz unterstützt eine interne und externe Anspruchskommunikation und -dokumentation quer über alle Teile des Anspruchshandhabungsprozesses.
  • Die Funktion Formulare & Korrespondenz – Erzeuge Korrespondenz stellt die Fähigkeit bereit, unter Verwendung verschiedener Suchkriterien nach einer Vorlage zu suchen, eine Vorlage zur Verwendung auszuwählen und daraufhin Anspruchsdaten wirksam in die ausgewählte Vorlage einzusetzen.
  • Die Funktion Formulare & Korrespondenz – Vorlagenwartung ist ein Werkzeug für den Bibliothekar zum Erzeugen, Löschen und Aktualisieren von Korrespondenzvorlagen und ihren zugeordneten Kriterien.
  • Einige durch Formulare & Korrespondenz unterstützte spezifische Prozesse sind:
    • • Über Ansprüche berichten
    • – bei erster Mitteilung des Schadensfalls an staatliche/bundesstaatliche Dienststellen usw.
    • – interne Anforderungen von Informationen
    • • Teilnehmer beraten
    • • Teilnehmer kontaktieren
    • • Berechnungen durchführen
    • • Korrespondenz für Ansprüche oder Nichtansprüche erzeugen
  • Wert
  • Die Formular- und Korrespondenzkomponente unterstützt den Benutzer bei einem Erzeugen einer Dokumentation.
  • Ein wirksames Eintragen von Informationen aus dem Anspruch direkt in eine Korrespondenz verringert das Ausmaß des zum Erzeugen von Formularen und Briefen ausgeführten Tippens und Diktierens. Die für die Vorlagen verfügbaren typischen Daten sollten einschließen: Autor, Adressat, Anspruchsnummer, Datum des Schadensfalls, Versichertenname, Versicherungsscheinnummer usw. Ein Bibliothekar fügt standardisierte Formulare und Briefe in logischen Gruppierungen, die für die ganze Firma verfügbar gemacht werden, hinzu und wartet sie.
  • Schlüsselbenutzer
  • Anspruchsangestellte sind die primären Benutzer der Formular- und Korrespondenzkomponente, aber sie kann durch jeden, der Zugriff auf das System hat, zum Erzeugen von Dokumenten unter Verwendung von vorhandenen Vorlagen verwendet werden.
  • Bibliothekare für Formulare und Korrespondenz verwenden das System zum Erzeugen, Aktualisieren oder Entfernen von Vorlagen.
  • Komponentenfunktionalität
  • Formulare und Korrespondenz – Erzeuge Korrespondenz
    • 1. Basierend auf Suchkriterien nach einer Vorlage suchen.
    • 2. Unter Verwendung von Anspruchsdaten eine Korrespondenz aus einer Vorlage erzeugen.
    • 3. Ohne eine Verwendung von Anspruchsdaten eine Korrespondenz aus einer Vorlage erzeugen.
    • 4. Die Kriterien für eine ausgewählte Vorlage betrachten.
    • 5. Die Microsoft-Word-Vorlage betrachten, bevor irgendwelche Daten wirksam eingesetzt werden.
  • Formulare und Korrespondenz – Vorlagenwartung
    • 1. Basierend auf Suchkriterien nach einer Vorlage suchen.
    • 2. Korespondenzvorlagen und ihre Kriterien erzeugen, duplizieren, bearbeiten und löschen.
    • 3. Neu erzeugte/bearbeitete Vorlagen intern testen und genehmigen.
    • 4.Word-Vorlagen für NAN-Verteilung richtig kopieren.
  • Benutzerschnittstellen
    • • Nach Korrespondenz suchen
    • • Korrespondenzdetails
    • • Felder zuordnen
    • • Korrespondenzsuche warten
    • • Korrespondenzvorlageninformationen – Detailtabelle
    • • Korrespondenzvorlageninformationen – Kriterientabelle
    • • Microsoft Word
  • DATEINOTIZEN
  • Definition
  • Dateinotizen erfassen die Textinformationen, die nicht als Teil einer Anspruchsdatenerfassung in diskreten Datenelementen gesammelt werden können. Sie sind primär ein Dokumentationswerkzeug, aber werden auch zur internen Kommunikation zwischen Anspruchsfachleuten verwendet.
  • Benutzer können die Notizen nach dem Teilnehmer oder der Anspruchsphase (ärztliche Untersuchung, Untersuchung, Deckung usw.) sortieren, um eine rasche Wiedergewinnung und Organisation dieser Textinformationen zu ermöglichen.
  • Wert
  • Dateinotizen beschleunigen die Wiedergewinnung von und Berichterstattung über Anspruchinformationen. Ein Dateinotizensuchprogramm mit mehreren Indizierungskriterien versieht Anspruchsfachleute und Vorgesetzte mit der Fähigkeit zum schnellen Finden einer über eine spezielle Person oder ein spezielles Thema geschriebenen Dateinotiz. Das Dateinotizenwerkzeug nutzt moderne Textverarbeitungsfähigkeiten, die Eintragungen beschleunigen, Fehler verringern und es ermöglichen, wichtige Informationen hervorzuheben. Überdies erleichtert die Kategorisierungs- und Schlüsselfeldsuche den Prozess des Findens und Kopierens von Dateinotizen. Schließlich verbessern Dateinotizen die Kommunikation, da sie zwischen denjenigen, die an einem Verwalten des Anspruchs beteiligt sind, hin- und hergesendet werden können.
  • Schlüsselbenutzer
  • Alle Mitglieder der Anspruchsorganisation können Dateinotizen nutzen. Externe Parteien können über RMS als allgemein markierte Dateinotizen betrachten. Dieses Dienstprogramm steigert die Fähigkeit zum Lokalisieren von Schlüsselinformationen bezüglich eines Anspruchs. Jeder, der mehr über einen Anspruch erfahren möchte oder Informationen über einen Anspruch aufzeichnen möchte, nutzt das Dateinotizenwerkzeug.
  • Komponentenfunktionalität
  • Das Durchsuchen von Dateinotizen ist als Teil der Anspruchsverlaufskomponente, die es dem Benutzer ermöglicht, die Verlaufselemente einer Anspruchsdatei einschließlich Aufgaben, Briefen und bedeutsamen Anspruchsänderungsereignissen zu durchsuchen, enthalten.
  • Die Benutzerschnittstellen, die für diese Komponente benötigt werden, sind:
    • • Die Dateinotizensuche (Teil der Anspruchsverlaufskomponente): Dieses Fenster nutzt das Anspruchsphasenfeld in dem Dateinotizendatensatz, um dem Benutzer dabei zu helfen, die Suche nach spezifischen Dateinotizen einzugrenzen. Ferner ermöglicht es Benutzern, alle Dateinotizen, die bestimmte Kriterien erfüllen, in einem Berichtsstilformat zu betrachten.
    • • Dateinotizeneintragung: Das zum Aufzeichnen der Dateinotiz verwendete Fenster. Es bettet ein Textverarbeitungssystem ein und stellt die Fähigkeit bereit, zu kategorisieren, eine Notiz als Firma (privat) gegen allgemein (öffentlich) anzugeben, die Notiz als einen Entwurf oder eine endgültige Ausfertigung zu sichern und die Notiz zu einer anderen Person zu senden.
  • Benutzerschnittstellen
    • • Dateinotizen
    • • Entwurfsdateinotizdurchsicht
    • • Teilnehmersuche
    • • Ausführendensuche
  • ADRESSBUCH
  • Definition
  • Das Adressbuch ist die Schnittstelle zwischen dem Anspruchssystem und der Kundendatenbank. Die Kundenanwendung ist eine neue Komponente, die zum Verfolgen von Leuten oder Organisationen, die aus irgendeinem Grund mit VERTRAUEN bzw. RELIANCE interagieren, entworfen ist, aber Ansprüche sind am wahrscheinlichsten die erste Anwendung, die einen Kunden verwendet. Auf das Adressbuch wird direkt von dem Desktop und von dem Anspruchsordner zugegriffen.
  • Das Adressbuch wird mehreren Bedürfnissen in der Anspruchsorganisation gerecht. Obwohl seine primäre Funktion darin besteht, das Hinzufügen von Teilnehmern zu einem Anspruch zu unterstützen, fungiert es als ein Pfad zu der Kundendatenbank zum Ausfindigmachen von vorhandenen Teilnehmern und Hinzufügen von neuen Leuten oder Organisationen zu der Firmendatenbank.
  • Die Kundendatenbank hält Informationen über Namen, Adressen, Telefonnummern und andere Informationen, die immer bei einer Person oder Organisation Anwendung finden, ganz egal welche Rolle sie bei einem Anspruch spielt.
  • Wert
  • Das Adressbuch stellt eine gemeinsame Definition von Leuten oder Organisationen bereit, die mit RELIANCE interagieren, und stellt daher ein sehr viel effizienteres Mittel zum Erfassen dieser Informationen bereit. Jeder Kundendatenbankeintrag stellt die Fähigkeit zum Verknüpfen einer Person oder Organisation mit allen den verschiedenen Rollen, die sie quer über die Organisation spielt, bereit und macht daher ein Wiedergewinnen von Informationen auf einer Kunde-für-Kunde-Grundlage leicht und schnell.
  • Dadurch, dass man ein gemeinsames Adressbuch hat, sind viele Vorteile für RELIANCE vorhanden. Informationen über Leute und Organisationen werden in anderen Aktivitäten wie freigegebenen Aufgaben, die Telefonnummern eines Kunden nachschlagen, wenn ein Telefongespräch geführt werden muss, wirksam eingesetzt. Informationen, die in der Vergangenheit redundant gespeichert worden sind, können einmal eingetragen und wieder verwendet werden. Sobald alle Bereiche von RELIANCE die Kundenanwendung verwenden, können verschiedene Bereiche der Firma Definitionen von Einzelpersonen und Organisationen gemeinsam nutzen.
  • Komponentenfunktionalität
  • Das Adressbuch ermöglicht es Benutzern, Datensätze aus der Kundendatenbank hinzuzufügen, zu bearbeiten und zu löschen. Sie stellt auch eine robuste Suchmöglichkeit einschließlich phonetischer Namenssuchen zum Finden von in der Kundendatenbank enthaltenen Leuten bereit.
  • Es sind zwei primäre Benutzerschnittstellen für das Adressbuch vorhanden:
    • • Adressbucheintrag finden – Dies ist ein Suchfenster, das es einem Benutzer ermöglicht, unter Verwendung von Namen, Adressen, Telefonnummern und anderen Identifizierungen Datensätze in der Kundendatenbank zu finden. Aus diesem Fenster können spezifische Datensätze ausgewählt und Ansprüchen als Teilnehmer beigefügt werden.
    • • Adressbucheintrag warten – Dieses Fenster ermöglicht es Benutzern, Informationen über Kunden hinzuzufügen oder zu bearbeiten, indem ihre Namen, Adressen, Telefonnummern, E-Mail-Informationen und Identifizierungsnummern wie eine SSN oder TIN angegeben werden.
  • Das Adressbuch wird gleichzeitig mit der Kundenanwendung erzeugt, um sich zu vergewissern, dass ein konsistenter Entwurfansatz befolgt wird.
  • Schlüsselbenutzer
  • Alle Mitglieder der Anspruchsorganisation verwenden das Adressbuch zum Nachschlagen von Informationen über Leute und Organisationen in der Kundendatenbank. Diejenigen, die Ansprüche einrichten und handhaben, verwenden das Adressbuch zum Identifizieren von Teilnehmern.
  • Benutzerschnittstellen
    • • Kunden finden
    • • Kunden warten
  • INDEX
  • Definition
  • Die Index- oder Anspruchssuchkomponente stellt die Fähigkeit zum Lokalisieren von Ansprüchen in dem System unter Verwendung von verschiedenen Suchkriterien bereit. Die Kriterien decken eine breitere Vielfalt von Suchfähigkeiten als heutzutage vorhanden sind ab, einschließlich Anspruchsausführenden, Teilnehmern, phonetischen Namenssuchen, Adressen, Rollen, Geschäftsstellen und Geschäftszweigen, aber nicht darauf begrenzt. Die Suchergebnisse zeigen ausgewählte Anspruchs-, Teilnehmer- und Ausführendendaten an, um bei einem Identifizieren jedes Anspruchs zu helfen.
  • Die Indexkomponente ermöglicht auch eine leichte Navigation zu verschiedenen Anspruchskomponenten wie dem Anspruchsordner, sobald ein Anspruch identifiziert worden ist. Es kann von dem Desktop und von jedem offenen Anspruchsordner auf sie zugegriffen werden.
  • Die Indexkomponente ist zum Unterstützen von mehreren Geschäftsprozessen in der Anspruchsorganisation entworfen. Ihre Funktionen sind entscheidend für ein Verbessern der Anspruchspersonalproduktivität und des Kundendienstes in den folgenden Bereichen:
  • • Passende Post finden
  • Die Fähigkeiten der Indexsuche erleichtern es, den Anspruch, zu dem ein Poststück gehört, basierend auf zum Identifizieren von Ansprüchen in Formularen, Korrespondenz und Rechnungen verwendeten Kriterien zu identifizieren. Die Ausführenden für einen Anspruch können auch zu Postleitzwecken identifiziert werden.
  • • Telefonische Erkundigungen
  • Dieses Fenster ist der primäre Punkt zum Handhaben von eingehenden telefonischen Erkundigungen nach einem beliebigen Anspruch. Benutzer können Ansprüche schnell finden, ohne dem Anrufer Anforderungen von zusätzlichen Informationen aufzubürden.
  • • Doppelte Ansprüche
  • Vor einem Einrichten von neuen Ansprüchen können Überprüfungen ausgeführt werden, um sicherzustellen, dass der Anspruch nicht bereits in das System eingetragen worden ist. Die zusätzlichen Suchfähigkeiten verschaffen eine größere Gewissheit, dass doppelte Ansprüche nicht eingetragen werden. Dies verringert den Bedarf an einem Löschen oder Vereinigen von Anspruchsdatensätzen.
  • • Betrugsidentifizierung
  • Da Ansprüche leicht nach Teilnehmer und anderen Kriterien durchsucht werden können, können Betrugsfragen leichter untersucht werden. Dies ist jedoch nicht der primäre Zweck dieser Komponente.
  • Wert
  • Der Index verringert die zum Finden von vorhandenen Ansprüchen erforderliche Zeit und verringert auch eine potentielle Nacharbeit daraus, dass Ansprüche nicht gefunden werden, wenn sie für ein Finden von passender Post oder Überprüfungen hinsichtlich Doppeln benötigt werden.
  • Schlüsselbenutzer
  • Anspruchsangestellte sind die primären Benutzer des Indexfensters, aber es kann durch jeden, der Zugriff auf das System hat, zum Zugreifen auf Ansprüche, ohne sich Verfolgungsnummern einprägen zu müssen, verwendet werden.
  • Komponentenfunktionalität
  • Der Index ist primär eine robuste Sucheinheit, die schnell und effizient nach Ansprüchen sucht. Er ist keine Komponente, die ihre eigenen Daten speichert, da er primär darauf konzentriert ist, Benutzer schneller und direkter auf Anspruchsdaten hinzuweisen.
  • Der Index besteht aus einem Suchfenster, das das Format von allen anderen Suchfenstern in dem System befolgt.
  • Benutzerschnittstellen
    • • Ansprüche finden
  • VERLETZUNG
  • Definition
  • Die Verletzungskomponente erfasst Versionen der Verletzungen eines Anspruchstellers, während sie fortschreiten. Dieses Fenster erfasst Verletzungsinformationen in der Form von diskreten Datenfeldern, was den Bedarf an Freiformtextdateinotizen verringert. Das Erfassen von Daten anstelle von Text ermöglicht es, die Verletzung genau zu verfolgen und schnell zu berichten. Die Daten können auch als Rückmeldungsstatistiken dienen, das heißt zum Aufbauen von besten Anspruchspraktiken und bei der Risikoauswahl. Das bevorzugte Verfahren zum Identifizieren und Dokumentieren von Verletzungen ist der ICD-9-Code. Der Benutzer kann unter Verwendung von Deskriptoren oder Nummern den ICD-9-Code eintragen oder nach ihm suchen.
  • Wert
  • Daten über jede Verletzung werden in einem konsistenten, zugänglichen Format erfasst und zusammengefasst, was ein Aufzeichnen und Durchsehen des Falls erheblich weniger zeitaufwändig und organisierter macht, was es dem Schadenssachverständigen ermöglicht, sich auf gewünschte Resultate zu konzentrieren. Dieser "Schnappschuss" des derzeitigen Status und Verlaufs einer Verletzung erleichtern ein Übergeben oder Dateitransfers zwischen Anspruchsfachleuten sehr. Zusätzlich ermöglicht die Erfassung in einem diskreten Datenfeld die Verwendung von Ereignissen zum Identifizieren von Aktionspunkten in dem Lebenszyklus eines Anspruchs, der Verletzungen umfasst.
  • Schlüsselbenutzer
  • Alle Mitglieder der Anspruchsorganisation können die Verletzungskomponente nutzen. Diese Komponente steigert die Fähigkeit zum Lokalisieren und Zusammenfassen von Schlüsselinformationen bezüglich einer Verletzung.
  • Komponentenfunktionalität
  • Die Verletzung ist ein Aspekt von Teilnehmerinformationen, die sich auf die Anspruchstellerteilnehmer an dem Anspruch beziehen. Die Teilnehmerkomponente bringt Kunden zu allen anderen anspruchsbezogenen Einheiten in Beziehung. Informationen über Verletzungen werden zu Teilnehmerdatensätzen in Beziehung gebracht und bei den Teilnehmerebeneninformationen in dem Anspruchsordner angezeigt. Neue Einheiten werden benötigt, um eine Verletzungsdatenerfassung zu realisieren: eine Verletzungs- und ICD-9-Suche. Die Verletzungskomponente interagiert mit fünf anderen Komponenten: Anspruchsordner – enthält Invaliditätsverwaltungsdaten über einen Anspruchsteller; Teilnehmer – listet die mit dem Anspruch verbundenen Einzelpersonen auf; sowie Dateinotizen, Aufgabenassistent und die Ereignisverarbeitungseinheit. Die Verletzungskomponente verwendet auch Microsoft WORD zum Erzeugen eines formatierten Verlaufsverletzungsberichts für eine spezielle Einzelperson.
  • Die Benutzerschnittstellen, die für diese Komponente benötigt werden, sind:
    • • Verletzung: Dies ist das primäre Verletzungsfenster, das grundlegende Verletzungsberichtsdaten erfasst, einschließlich: der Quelle des Verletzungsberichts, dem Datum des Verletzungsberichts, einem Indikator des früheren medizinischen Verlaufs und daraufhin einer detaillierten Liste der mit dem Bericht verbundenen Verletzungen. Die detaillierte Liste weist diskrete Felder für die folgenden Daten auf: ICD-9-Code, Körperteil, Typ, Art, Ernst, Behandlung, Diagnostik, ein Freiformtextbeschreibungsfeld und einen Kausalbeziehungsindikator.
    • • ICD-9: Dies ist das Suchfenster zum Lokalisieren von ICD-9-Codes und zugeordneten Beschreibungen.
    • • Invaliditätsverwaltung: Dieses Fenster enthält eine Untermenge von Teilnehmerdatenfeldern, die eine wirkungsvollere Verletzungsverwaltung ermöglicht.
  • Benutzerschnittstellen
    • • Anspruchsordner – Teilnehmerebene – Verletzungstabelle
    • • ICD-9-Suchfenster
    • • Anspruchsordner – Teilnehmerebene – Invaliditätsverwaltungstabelle
  • VERHANDLUNG
  • Definition
  • Die 10 zeigt eine Veranschaulichung der Verhandlungskomponente eines Ausführungsbeispiels der vorliegenden Erfindung. Die Verhandlung stellt eine einzelne, strukturierte Vorlage, die durch unterstützende Ansichten ergänzt wird, bereit, um Ereignisse bezüglich einer Verhandlung zu erfassen. Die Verhandlungsschnittstelle 1000 erfasst Schlüsselelemente einer Verhandlung wie beispielsweise ein Abrechnungszielspektrum, derzeitige Forderungen und Angebote sowie unterstützende Stärken und gegnerische Behauptungen des Anspruchs. Verhandlungsinformationen werden in diskreten Datenelementen 1002 gesammelt, was die Fähigkeit zum Erzeugen von Ereignissen 1006 basierend auf Schlüsselattributen oder Änderungen bei einer Verhandlung ermöglicht. Diese Ereignisse 1006 werden daraufhin zu einer gemeinsamen Ereigniswarteschlange 1008 gesendet. Die Verhandlungskomponente 1000 ist mit der Dateinotizenkomponente 1004 gekoppelt, um eine zusätzliche Dokumentationsfähigkeit in einem nicht strukturierten Format bereitzustellen. Die Verhandlungsvorlage wird durch alle anderen in dem Anspruchsordner enthaltenen Daten unterstützt.
  • Wert
  • Daten über jeden Fall werden in einem konsistenten, zugänglichen Format zusammengefasst, was ein Aufzeichnen und Durchsehen des Falls erheblich weniger zeitraubend und organisierter macht, was es dem Schadenssachverständigen ermöglicht, sich auf eine Verhandlungsstrategie und gewünschte Resultate zu konzentrieren. Dieser "Schnappschuss" des derzeitigen Status erleichtert ein Übergeben oder Dateitransfers zwischen Anspruchsfachleuten sehr. Zusätzlich ermöglicht die Erfassung in einem diskreten Datenfeld die Verwendung von Ereignissen zum Identifizieren von Aktionspunkten bei einer Verhandlung.
  • Schlüsselbenutzer
  • Alle Mitglieder der Anspruchsorganisation können die Verhandlung nutzen. Diese Komponente steigert die Fähigkeit zum Lokalisieren und Zusammenfassen von Schlüsselinformationen bezüglich einer Verhandlung.
  • Komponentenfunktionalität
  • Die Verhandlung ist ein Typ von Lösungsaktivität, der Teil der Anspruchskomponente des Anspruchseinheitsmodells ist. Die Anspruchskomponente ist der zentrale Brennpunkt des Anspruchseinheitsmodells, da sie die wesentlichen Informationen über einen Anspruch enthält. Die Anspruchskomponente unterstützt die Kernanspruchsdatenerfassungsfunktionalität, Erste-Mitteilung-Prozesse und Lösungsaktivität für Ansprüche. Die Haupttypen/-klassen von Daten in der Anspruchskomponente sind: Anspruch, Anspruchsteller, Linie, Anspruchsverlauf, Lösungsaktivität, Reserveelement und Reserveelementänderung. Drei Einheiten werden zum Realisieren einer Verhandlung benötigt: Lösungsaktivität, Anspruch und Anspruchsverlauf. Es ist auch eine Interaktion zwischen der Verhandlungskomponente und den Aufgabenassistenten-, Dateinotizen- und Ereignisverarbeitungseinheitskomponenten vorhanden.
  • Die zur Verhandlung benötigten Benutzerschnittstellen sind:
    • • Verhandlung: Dieses Fenster erfasst Forderungs- und Angebotsdaten, einschließlich: Betrag, Datum, Typ und Betriebsart der Kommunikation. Das Zielabrechnungsspektrum, niedrigstes und höchstes, werden zusammen mit Stärken und Schwächen des Falls erfasst.
  • Unterstützende Benutzerschnittstellen, die ebenfalls Teil des Anspruchsordners sind, schließen ein:
    • • Haftung (Anspruchsebenentabelle): Dieses Fenster wird zum Dokumentieren von Haftungsfaktoren bei einem Auswerten und Bewerten eines Anspruchs verwendet. Die Haftungsfaktoren umfassen Prozent der Haftung für alle beteiligten Parteien; Form der Verhandlung, die für die Zuständigkeit ausschlaggebend ist; Haftungstheorien, die der Anspruchshandhaber für auf den Anspruch anwendbar hält. Wird vor einem Entwickeln einer Verhandlungsstrategie verwendet.
    • • Schäden (Linienebenentabelle): Dieses Fenster stellt die Fähigkeit zum Bewerten und Auswerten eines Anspruchs basierend auf erlittenen und erwarteten Schäden bereit. Wird vor einem Entwickeln einer Verhandlungsstrategie verwendet.
  • Benutzerschnittstellen
    • • Anspruchsordner – Linienebene – Verhandlungstabelle
    • • Anspruchsordner – Anspruchsebene – Haftungstabelle
    • • Anspruchsordner – Linienebene – Schadenstabelle
  • ORGANISATION
  • Definition
  • Die 11 zeigt ein Flussdiagramm der durch die Organisationskomponente gemäß einem Ausführungsbeispiel der vorliegenden Erfindung genutzten Operationen. Die Organisationskomponente 1100 ermöglicht es, gemeinsame Informationen für die Leute, die Arbeit an Ansprüchen durchführen, quer über alle Ansprüche, an denen sie arbeiten, zu speichern, zu durchsuchen und wieder zu verwenden.
  • Bei einem Ausführungsbeispiel der Organisationskomponente 1100 werden alle Angestelltendatensätze in einer gemeinsamen Datenbank 1102 gehalten, so dass sie den sich in einer Anspruchsdatenbank 1104 befindenden spezifischen Ansprüchen, an denen sie arbeiten, beigefügt werden können. Die gemeinsamen Informationen, die in dem Angestelltendatensatz gehalten werden, schließen Name, Ort, Telefon und ein paar minimale Informationen des organisatorischen Kontexts wie Geschäftsstelle oder Abteilung ein. Dies ist das zum Unterstützen des Verfolgens von Ausführenden bei Ansprüchen erforderliche Minimum. Die Angestellteninformationen 1102 werden daraufhin mit den Anspruchsinformationen 1104 verknüpft 1106, und die Datenbanken werden aktualisiert 1108. Sind die Angestellten 1102 mit den Ansprüchen 1104, an denen sie arbeiten, verknüpft worden, kann die Datenbank nach Angestelltem oder Anspruch durchsucht werden 1110.
  • Diese Version der Organisation kann jedoch derart erweitert werden, dass sie Organisationsbeziehungen (insbesondere ein Verfolgen, wo ein Angestellter in die Organisationsstruktur fällt), Gruppen von Einzelpersonen als Ausführende zur Anspruchszuweisung und eine Anspruchszuordnung in der Organisationsstruktur aufweist. Diese Fähigkeiten sollen eine beliebige Vorstellung von Fallbelastungsanalyse, Verwaltungsberichterstattung oder automatisierter Zuweisung, die enthalten sein müsste, unterstützen.
  • Wert
  • Durch ein Verfolgen von gemeinsamen Definitionen von Angestellten quer über Ansprüche werden Indizierungsfähigkeiten verbessert, und Ausführende bei Ansprüchen werden genau verfolgt.
  • Schlüsselbenutzer
  • Die primären Benutzer der Organisationsfähigkeiten sind das Verwaltungspersonal, das Ausführende einrichtet; so wie die Techniker, die verfolgen, wer an einem Anspruch arbeitet.
  • Komponentenfunktionalität
  • Der Entwurf des minimalen Bereichs der Organisationskomponente schließt ein Suchfenster zum Finden von Angestellten in der Organisation und ein Detailfenster zum Sehen von spezifischen Informationen über jeden Angestellten ein.
  • Benutzerschnittstellen
    • • Organisationseinheitssuche
    • • Organisationseinheit hinzufügen/bearbeiten
  • Teilnehmer
  • Die 12 zeigt eine Veranschaulichung der Teilnehmerkomponente gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Ein Teilnehmer 1200 stellt die Verknüpfung zwischen Ansprüchen und Einzelpersonen und Organisationen, die in der Kundendatenbank gespeichert sind und auf die durch das Adressbuch 1202 zugegriffen wird, bereit. Der Teilnehmer verknüpft Kunden mit Ansprüchen 1204, indem er die Rollen definiert, die sie spielen, zum Beispiel Anspruchsteller, Fahrer oder Arzt. Er verwendet die in dem Adressbuch 1202 enthaltenen Informationen wieder, so dass sie nicht für jeden Teilnehmer neu eingetragen werden müssen.
  • Die Teilnehmerkomponente ermöglicht es auch, Verknüpfungen 1206 zwischen einem Teilnehmer und verschiedenen Elementen in Ansprüchen auszubilden. Ein Arzt kann mit dem Anspruchsteller, den er behandelt, verknüpft werden, und ein Fahrer kann mit dem beschädigten Fahrzeug, das er gefahren hat, verknüpft werden.
  • Sobald ein Teilnehmer zu einem Anspruch hinzugefügt worden ist, können zusätzliche Informationen 1208, die für den Anspruch spezifisch sind, beigefügt werden. Diese Informationen umfassen Verletzung, Anstellung und viele andere Typen von Informationen, die spezifisch für die Rolle, die eine Person oder Organisation bei einem Anspruch spielt, sind.
  • Die durch den Teilnehmer 1200 primär unterstützten Geschäftsprozesse sind:
  • • Beteiligung an einem Anspruch aufzeichnen
  • Es ist eine grundlegende Datenerfassungsanforderung zum Verfolgen von Einzelpersonen und Organisationen, die an einem Anspruch beteiligt sind, vorhanden, und diese wird unter Verwendung des Teilnehmeransatzes am effizientesten ausgeführt.
  • • Rollenspezifische Informationen aufzeichnen
  • Das Adressbuch 1202 speichert Informationen, die quer über Ansprüche wieder verwendet werden können, aber die Teilnehmerkomponente 1200 muss die Informationen halten, die für eine Beteiligung einer Einzelperson oder Organisation an einem spezifischen Anspruch spezifisch sind.
  • • Kontakt mit Kunden aufnehmen
  • Da der Teilnehmer zurück an das gemeinsame Adressbuch 1202 anknüpft, können irgendwelche dort enthaltenen Kontaktinformationen schnell und leicht erhalten werden.
  • • Formulare und Korrespondenz 1210
  • Ein wirksames Einsetzen von Adressinformationen in Briefen stellt eine Effizienzbefähigung für alle Benutzer, die keine Namens- und Adressinformationen nachschlagen müssen, bereit.
  • • Verlaufsinformationen kategorisieren
  • Teilnehmer werden zum Kategorisieren von Verlaufselementen wie Aufgaben und Dateinotizen verwendet, so dass Informationen bezüglich eines einzelnen Teilnehmers an einem Anspruch leicht wiedergewonnen werden können.
  • • Anspruchsindizierung
  • Ein Beifügen von Teilnehmern zu einem Anspruch ermöglicht es der Indexkomponente, bei dem Verarbeiten von Anspruchserkundigungen wirkungsvoller zu sein.
  • Schlüsselbenutzer
  • Die primären Benutzer der Teilnehmerkomponenten 1200 sind diejenigen, die direkt an einem Verarbeiten von Ansprüchen arbeiten. Sie sind diejenigen, die die Teilnehmerbeziehungen warten.
  • Anspruchsfachleute, die sich mit Verletzungen befassen, verwenden die Teilnehmertabellen in dem Anspruchsordner, um für ein besseres Ergebnis bei dem Anspruch Verletzungen zu verfolgen und Invaliditäten zu verwalten.
  • Wert
  • Da die Teilnehmerkomponente 1200 nur danach trachtet, die Rollen, die Einzelpersonen und eine Organisation quer über alle Ansprüche spielen, zu definieren, ist kein redundanter Eintrag von Namens-, Adress- und Telefoninformationen vorhanden. Diese sind alle in dem Adressbuch 1202 gespeichert.
  • Die Anzahl von potentiellen Teilnehmerrollen, die definiert werden können, ist im Grunde genommen grenzenlos und daher erweiterbar, da die Einbindung von zusätzlichen Leuten und Organisationen erfasst werden muss.
  • Komponentenfunktionalität
  • Der größte Teil der Teilnehmerfunktionalität wird in dem Kontext des Anspruchsordners ausgeführt. Der Anspruchsordner enthält auf zwei Weisen Teilnehmerebenen. Zuerst einmal sind Anspruchsteller in dem Anspruchsbaum auf der linken Seite des Fensters gezeigt. Darunter sind andere Teilnehmer in einer Liste gezeigt. Ein Auswählen eines beliebigen Teilnehmers zeigt einen Satz von Teilnehmerinformationstabellen an, die die folgenden Informationen anzeigen:
    • • Teilnehmerdetails – grundlegende Informationen über die Rolle, die ein Teilnehmer bei einem Anspruch spielt, und alle die anderen Teilnehmer, die mit ihm verbunden sind.
    • • Kontaktinformationen – Informationen aus dem Adressbuch über Namen, Adressen und Telefonnummern.
    • • Verletzung – spezifische Informationen über die Natur von durch verletzte Anspruchsteller erlittenen Verletzungen.
    • • Invaliditätsverwaltung – Informationen über verletzte Anspruchsteller mit Invaliditäten.
  • Nur die ersten zwei Tabellen werden für alle Teilnehmer konsistent angezeigt. Andere Tabellen können basierend auf der Rolle und charakteristischen Merkmalen der Beteiligung eines Teilnehmers an einem Anspruch erscheinen.
  • Ein Hinzufügen oder Bearbeiten von Teilnehmerrolleninformationen wird tatsächlich durch das Suchfenster des Adressbuchs 1202 ausgeführt. Der Prozess ist so einfach wie ein Finden des Datensatzes des Adressbuchs 1202 für den vorgesehenen Teilnehmer und ein Bestimmen der Rolle, die der Teilnehmer bei dem Anspruch spielt. Sobald dies getan ist, wird der Teilnehmer in dem Anspruchsordner gezeigt, und zusätzliche Informationen können hinzugefügt werden.
  • Die Vorstellung von einem Teilnehmer ist ein generisches Konzept, das nicht allein für Ansprüche spezifisch ist. Es basiert auf einem Entwurfsmuster, das bei einem Aufbauen von zusätzlichen Anspruchsfähigkeiten erweitert werden kann. Eine beliebige Beteiligung einer Einzelperson oder einer Organisation kann auf diese Weise modelliert werden.
  • Benutzerschnittstellen
    • • Teilnehmerebene – Teilnehmerdetailtabelle
    • • Teilnehmerebene – Kontaktinformationstabelle
    • • Teilnehmerebene – Ereignistabelle
    • • Teilnehmerebene – Verletzungstabelle (Verletzungskomponente)
    • • Teilnehmerebene – Invaliditätsverwaltungstabelle (Verletzungskomponente)
    • • Teilnehmerliste betrachten
  • AUSFÜHRENDER
  • Definition
  • Die Ausführendenkomponente ermöglicht es, Organisationseinheiten (Einzelpersonen, Gruppen, Geschäftsstellen usw.) verschiedene Rollen bei einem Handhaben des Anspruchs von einem Bericht bis zu der Lösung zuzuweisen. Die Ausführendenkomponenten wird auf einer Anspruch-für-Anspruch-Grundlage genutzt.
  • Ein Ausführender ist als eine beliebige Einzelperson oder Gruppe definiert, die zugewiesen werden kann, um eine Rolle bei einem Anspruch zu erfüllen.
  • Die Ausführendenkomponente unterstützt die Zuweisungsprozesse in dem Anspruchshandhabungsprozess. Dies geht über die Zuweisung des Anspruchs bei FNOL hinaus. Diese Komponente ermöglicht ebenso die Zuweisung von Arbeit (Aufgaben).
  • Einige durch den Ausführenden unterstützte spezifische Prozesse sind:
    • • Ansprüche zuweisen Identifizierung von verschiedenen Rollen bei den Ansprüchen, um den Anspruch zuzuweisen (Anspruch einleiten – DC-Prozess-Arbeit)
    • • Hält Rollen und Beziehungen von Ausführenden in Ansprüchen
    • • Aufgaben zuweisen
    • • Neuzuweisungen
    • • Unterstützt Leite-Anspruch-ein-Prozess – Zuweisung
    • • Suchmechanismus für Angestellte, Geschäftsstellen
    • • Alle Ausführenden sollten in der Organisationskomponente sein
    • • Stellt Verlauf von Zuweisungen bereit
  • Wert
  • Die Ausführendenkomponente ermöglicht die Zuweisung von Rollen oder Aufgaben zu Einzelpersonen oder Gruppen. Die Daten über Ausführende befinden sich in einer gemeinsamen Ablage: der Organisationskomponente.
  • Die Ausführendenkomponente verringert die zum Finden von Angestellten, Teams oder einem beliebigen potentiellen Ausführenden erforderliche Zeit und stellt die Konsistenz von Daten sicher.
  • Schlüsselbenutzer
  • Die primären Benutzer der Ausführendenkomponente sind diejenigen, die direkt an einem Verarbeiten von Ansprüchen arbeiten. Sie sind diejenigen, die die Zuweisung von Rollen oder Aufgaben, die sich auf einen Anspruch beziehen, warten.
  • Komponentenfunktionalität
  • Die Ausführendenkomponente unterstützt eine Informationsfunktion und eine Zuweisungsfunktion.
    • 1. Details für Ausführende (Angestellter, Geschäftsstelle, Einheit usw.) betrachten. Diese Details können Organisationseinheitsbeziehungen nahe legen, aber sie in keiner Weise definieren oder warten.
    • 2. Alle einem Anspruch derzeit und während des Verlaufs zugewiesenen Ausführenden (schließt Einzelpersonen, Gruppen, Geschäftsstellen usw. ein) betrachten.
    • 3. Ausführende einem Anspruch zuweisen – auf den Anspruchs-, Anspruchsteller- und Ergänzungsebenen (einschließlich Einzelpersonen, Geschäftsstelle, Gruppen, usw.).
  • Benutzerschnittstellen
    • • Ausführenden zuweisen
    • • Ausführendenrollen
    • • Ausführendenliste betrachten
  • AUFGABENASSISTENT
  • Definition
  • Der Aufgabenassistent ist der Grundstein der Arbeitsumgebung eines Anspruchsfachmanns. Er stellt Terminkalenderfunktionen auf einer Arbeitsschrittebene bereit, die die Verwaltung von komplexen Anspruchsereignissen ermöglichen. Er ermöglicht die konsistente Ausführung von besten Anspruchspraktiken durch ein Zusammensetzung und Neuzusammensetzen aller der Aufgaben, die für einen Anspruch durchgeführt werden müssen, basierend auf detaillierten charakteristischen Anspruchsmerkmalen. Diese charakteristischen Merkmale kommen aus Ausführungsbefolgungsanforderungen (regulatory compliance requirements), Kontodienstverpflichtungen (account servicing commitments) und besten Praktiken zum Handhaben aller Typen von Ansprüchen. Der Aufgabenassistent stellt auch Mechanismen bereit, die einen Teil der oder die ganze Arbeit bei einem Durchführen einer Aufgabe automatisieren, um dem Anspruchsfachmann bei einem Abschließen seiner oder ihrer Arbeit zu helfen. Sobald eine Aufgabe abgeschlossen ist, erzeugt der Aufgabenassistent einen Verlaufsdatensatz zum Dokumentieren der Aktionen des Anspruchshandhabers.
  • Der Aufgabenassistent ist ...
    • • Ein Verfahren zum Sicherstellen einer konsistenten Ausführung von Ausführungsanforderungen, Kontodienstverpflichtungen und besten Praktiken der Anspruchshandhabung
    • • Eine Quelle der automatisierten Hilfe für Anspruchsfachleute
    • • Ein organisationsweites Kommunikationswerkzeug in dem Kontext eines Anspruchs (es ersetzt nicht Lotus Notes)
    • • Ein Mechanismus zum Ausbilden einer Anspruchsstrategie als üblich und gemeinsamen Nutzen von Firmenerfahrung
    • • Eine Terminkalenderanwendung zum Verfolgen von Ansprüchen
    • • Ein Verlaufsverfolgungswerkzeug
    • • Ein Weg zum Gewinnen der Aufmerksamkeit eines Anspruchsfachmanns oder eines Teamführers
    • • Ein Mechanismus zum schnellen Ausbilden von Prozessänderungen bei der Organisation
  • In dem Aufgabenassistent haben Anspruchsfachleute die letzte Kontrolle zum Bestimmen, ob und wann Aufgaben abgeschlossen sein müssen. Sie haben auch die Fähigkeit zum Hinzufügen von Aufgaben zu der Liste, um Arbeit darzustellen, die sie tun und die nicht in Standarddefinitionen von Aufgaben in dem System widergespiegelt ist. Dies unterstützt eine Vision von dem Anspruchsfachmann als einem kenntnisreichen Arbeiter, der durch die Untersuchung, Auswertung und Verhandlung des besten möglichen Resultats hindurch die meiste von seiner oder ihrer Zeit auf ein erfolgreiches Ergebnis konzentriert verwendet.
  • Wert
  • Der Aufgabenassistent verringert die zum Handhaben eines Anspruchs erforderliche Zeit, indem er den Anspruchsfachmann mit der automatischen Planung der Anspruchsaktivität versieht. Er hilft dem Anspruchsfachmann dabei, für jeden Anspruch abgeschlossene Aufgaben nicht zu vergessen, durchzuführen und aufzuzeichnen. Abgeschlossene Aufgaben sind selbstdokumentierend und bleiben Teil des Anspruchsverlaufs.
  • Der Aufgabenassistent stellt auch die konsistente Handhabung von Ansprüchen überall in der Organisation sicher und kann auf diese Weise Unkosten und Schadensfallkosten deutlich beeinflussen. Überdies hilft er bei einem Sicherstellen der Ausführungsbefolgung und der Erfüllung von Kontozusagen. Er unterstützt die bei einem Handhaben von schwierigen Ansprüchen erforderliche Teamarbeit als einen Strukturkommunikationsmechanismus.
  • Die automatisierten Freigaben für Aufgaben verringern die Menge von Zeit, die Anspruchsfachleute für Aktivitäten mit geringer Wertschöpfung wie beispielsweise ein Schreiben von Korrespondenz verwenden müssen. Sie können daher eine größere Menge von Zeit für ein Untersuchen, Auswerten und Verhandeln jedes Anspruchs verwenden.
  • Schlüsselbenutzer
  • Während Anspruchsfachleute die primären Benutzer des Aufgabenassistenten sind, verwenden andere die Anwendung ebenso. Der ganze Anspruchsgeschäftsbereich nutzt den Aufgabenassistenten zum Strukturieren von Arbeit und Kommunizieren miteinander. Teamführer verwenden den Aufgabenassistenten zum Durchführen einer Dateidurchsicht und zum Führen der Arbeit des Anspruchsfachmanns. Verwaltungspersonal verwendet den Aufgabenassistenten als ein Mittel zum Empfangen von Arbeit und zum Kommunizieren des Abschlusses der Arbeit. Anspruchsfachleute verwenden den Aufgabenassistenten zum Abschließen von Arbeit und zum Anfordern von Hilfe von Teamführern und Anspruchsfachleuten eines Spezialgebiets.
  • Der Aufgabenassistent erfordert einen neuen Typ von Benutzer zum Einrichten und Warten der Vielfalt von Aufgaben, die erzeugt werden. Ein Aufgabenbibliothekar wartet die Aufgabenbibliothek, die die Liste aller der standardisierten Aufgaben quer über die Organisation enthält. Der Bibliothekar definiert Regeln, die bewirken, dass Aufgaben basierend auf charakteristischen Anspruchsmerkmalen, Daten, die definieren, wann Aufgaben fällig sind, und einer Aufgabenfreigabe durch andere Anwendungen in Aufgabenlisten platziert werden.
  • Komponentenfunktionalität
  • Die 13 zeigt ein Flussdiagramm der durch die Aufgabenassistentenkomponente der vorliegenden Erfindung genutzten Operationen. Die Verarbeitung von Aufgaben durch den Aufgabenassistenten umfasst den Lebenszyklus der Aufgabe von ihrer Erzeugung bis zu ihrem Abschluss oder ihrer Löschung. In einer ersten Operation 1300 stellt die Aufgabeneinheit Aufgaben für den Aufgabenassistenten bereit. In der zweiten Operation 1302 zeigt der Aufgabenassistent daraufhin die Liste von durch die Aufgabeneinheit bereitgestellten Aufgaben an. In der dritten Operation 1304 wird es dem Benutzer ermöglicht, Aufgaben hinzuzufügen und Aufgaben zu bearbeiten, die durch die Aufgabeneinheit bereitgestellt werden. Die vierte Operation 1306 tritt auf, während der Anspruch verarbeitet wird. Während der Anspruch verarbeitet wird, bestimmen der Benutzer und die Aufgabeneinheit, wann die verschiedenen Aufgaben abgeschlossen sind. Wenn Aufgaben abgeschlossen sind, tritt die fünfte Operation 1308 auf. In der fünften Operation 1308 wird ein Verlaufsdatensatz für irgendwelche Aufgaben, von denen bestimmt wird, dass sie abgeschlossen sind, erzeugt.
  • Die Schlüsselbenutzerschnittstellen für diese Komponente sind:
    • • Der Aufgabenassistent: Dies ist das Dienstprogramm, das die Besetzung, Ausführung und Verlaufsverfolgung von Aufgaben unterstützt. Es ermöglicht es Benutzern, Aufgaben durchzuführen, Aufgaben abzuschließen und Aufgaben zu entfernen, die automatisch hinzugefügt worden sind.
    • • Der Aufgabenarbeitsplan: Diese Benutzerschnittstelle ermöglicht es dem Benutzer, den Plan für einen spezifischen Anspruch strategisch zu entwickeln. Sie zeigt Aufgaben, die ihren jeweiligen Ebenen des Anspruchs einschließlich Linien, Teilnehmern und dem Anspruch selbst beigefügt sind.
    • • Aufgabenfreigabefenster: Es sind viele Fenster vorhanden, die hinzugefügt werden können, um eine Aufgabe mit anderen Anwendungen wie beispielsweise einer Telefonunterstützung, Formularen und Korrespondenz und Dateinotizen freizugeben. Die Anzahl von potentiellen Aufgabenfreigaben ist im Grunde genommen grenzenlos.
    • • Aufgabeneintragung: Ermöglicht es einem Benutzer, eine neue Aufgabe hinzuzufügen, die nicht automatisch zu der Aufgabenliste hinzugefügt wurde, um Situationen abzudecken, in denen der Anspruchshandhaber auszuführende Arbeit angeben möchte, die nicht durch die Standardaufgabendefinitionen in der Aufgabenbibliothek widergespiegelt wird.
  • Hinter der Funktion des Aufgabenassistenten wertet die Aufgabeneinheit kontinuierlich von anderen Komponenten gesendete Nachrichten aus und bestimmt basierend auf den durch den Aufgabenbibliothekar aufgestellten Regeln, welche Aufgaben bei dem Aufgabenassistenten besetzt werden sollten. Es werden Nachrichten zu dem Aufgabenassistenten gesendet, wenn etwas Bedeutsames bei einer anderen Komponente auftritt. Die Nachrichten enthalten die charakteristischen Merkmale, die die Aufgabeneinheit zum Auswerten benötigt, um die richtigen Aufgaben in der Aufgabenliste zu platzieren.
  • Benutzerschnittstellen
    • • Aufgabenassistent
    • • Aufgabe neu zuweisen
    • • Aufgaben bearbeiten/hinzufügen
    • • Aufgabe zurücksetzen
    • • Aufgabe irrtümlicherweise markieren
    • • Arbeitsplan aufbauen
    • • Teilnehmersuche
    • • Teilnehmertelefonnummer
    • • Telefonaufgabe
    • • Persönliches Profil
    • • Kontosuche
    • • Organisationssuche
    • • Ausführendensuche
  • EREIGNISVERARBEITUNGSEINHEIT/AUFGABENEINHEIT
  • Definition
  • Die 14 zeigt eine Veranschaulichung der Ereignisverarbeitungseinheit 1400 zusammen mit anderen Komponenten des Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Ereignisverarbeitungseinheit 1400 arbeitet hinter den Kulissen aller Anspruchsanwendungen, um auf bedeutsame Ereignisse zu horchen, die in dem Leben von verschiedenen Einheiten in dem System wie Ansprüchen (aber potentiell noch viele andere wie in Zukunft Konten oder Versicherungsscheine) aufgetreten sind. Sie bestimmt, welches die Antwort auf jedes Ereignis sein sollte, und leitet sie zu der Systemkomponente, die sie verarbeiten wird. Die Ereignisverarbeitungseinheit ist für eine beliebige spezifische Einheit oder ein beliebiges spezifisches Ereignis in dem System vollständig generisch und ermöglicht daher eine auf einer beinahe grenzenlosen Anzahl von Ereignissen und Antworten, die definiert werden können, basierende Automatisierung.
  • Die 15 zeigt eine Veranschaulichung der Aufgabeneinheit 1404 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Aufgabeneinheit 1404 verarbeitet den üblichsten Satz von Ereignisantworten, diejenigen, die basierend auf Ereignissen 1006, die aufgetreten sind, Aufgaben 1406 erzeugen müssen. Sie vergleicht die Aufgaben, die für das System definiert worden sind, mit einem Satz von Anspruchskriterien, um festzustellen, welche Aufgaben hinzugefügt werden sollten und welche Aufgaben nun als abgeschlossen markiert werden sollten.
  • Die einzige Schnittstelle, die der Benutzer zu diesen Komponenten sieht, ist die Aufgabenbibliothek 1500, die es Aufgabenbibliothekaren 1502 ermöglicht, die Aufgaben und die sie erzeugenden Regeln, die durch die Aufgabeneinheit 1404 verwendet werden, zu definieren. Das Arbeiten mit diesen Komponenten ist beinahe gänzlich eine durch Spezialisten, die die Komplexität der an einem Sicherstellen, dass Ereignisse 1006 und Aufgaben 1406 richtig gehandhabt werden, beteiligten Regeln verstehen, durchgeführte Funktion.
  • Die Ereignisverarbeitungseinheit 1400 verwaltet auch die Kommunikation und Datensynchronisation zwischen neuen Anspruchskomponenten und LEGACY-Anspruchssystemen. Dieser einzelne Berührungspunkt kapselt die komplexen Prozesse der Übersetzung und Mitteilung von Ereignissen zwischen den zwei Systemen wirkungsvoll ein.
  • Wert
  • Die automatisierte Bestimmung von Ereignisantworten stellt enorme Vorteile für Systembenutzer bereit, indem sie die Wartung, die sie zum Sicherstellen der richtigen Verfügung über Ansprüche durchführen müssen, verringert.
  • Benutzer lösen durch die Daten, die sie eintragen, und die Systemaktivitäten, die sie durchführen, Ereignisse aus, und das System antwortet automatisch mit passenden automatisierten Aktivitäten wie einem Erzeugen von Aufgaben.
  • Die in der Aufgabenbibliothek definierten Aufgabenerzeugungsregeln stellen eine äußerst flexible Definition von Aufgabenhandhabungsprozessen bereit, die nur durch die in dem System verfügbaren Daten, auf denen Aufgabenerzeugungsregeln basieren können, begrenzt wird. Prozessänderungen können durch Aufgabenbibliothekare schnell realisiert werden und durch den Aufgabenassistenten durchgeführt werden.
  • Schlüsselbenutzer
  • Obwohl das ganze Anspruchspersonal direkt einen Vorteil von der Funktion der Ereignisverarbeitungseinheit und des Aufgabenassistenten hat, steuern nur speziell trainierte Benutzer die Verarbeitung dieser Komponenten. Die Aufgabenbibliothekbenutzerschnittstelle verwendende Aufgabenbibliothekare handhaben den Prozess des Definierens von neuen Aufgaben und der Regeln, die sie in der Aufgabeneinheit auslösen.
  • Betriebspersonal, das sicherstellt, dass alle Ereignisse richtig verarbeitet werden und dass die passenden Systembetriebsmittel verfügbar sind, um die Durchsatzhandhabungsereignisverarbeitung zu verwalten.
  • Komponentenfunktionalität
  • Wie in der 14 gezeigt nutzt die Ereignisverarbeitungseinheit 1400 eine gemeinsame Warteschlange 208 von Ereignissen 1006, die durch eine beliebige Komponente 1402 des Systems besetzt werden, um zu identifizieren, welche Ereignisse aufgetreten sind. Durch ein Arbeiten mit dieser Warteschlange bestimmt die Ereignisverarbeitungseinheit die passende Antwort für ein Ereignis und stellt Informationen für andere Komponenten bereit, die sie verarbeiten müssen. Die Ereignisverarbeitungseinheit verarbeitet selbst keine Ereignisse und erhält eine klare Einkapselung von Systemverantwortlichkeiten aufrecht. Ein Ereignis, das Anspruchsdaten beeinflusst, wird zum Beispiel durch die Anspruchskomponente verarbeitet.
  • Die Aufgabeneinheit 1404 folgt einem Prozess des Auswertens von Ereignissen 1006, Bestimmens von charakteristischen Anspruchsmerkmalen und Vergleichens der charakteristischen Anspruchsmerkmale mit in der Aufgabenbibliothek 1500 definierten Aufgaben.
  • Die Schlüsselbenutzerschnittstelle für die Aufgabeneinheit 1404 ist die Aufgabenbibliothek 1500. Die Aufgabenbibliothek 1500 hält die Vorlagen, die die Felder und Werte, mit denen die Aufgaben aufgebaut werden, enthalten. Eine Aufgabenvorlage kann Anweisungen wie "When event = litigation AND live of business = commercial auto, then ..." enthalten. Vorlagen identifizieren auch, was das Fälligkeitsdatum einer Aufgabe sein sollte und wie die Aufgabe mit anderen Anwendungen freigegeben wird.
  • Benutzerschnittstellen
    • • Aufgabenvorlage suchen
    • • Auslösende Vorlagen suchen
    • • Aufgabenvorlagendetails
  • Während vorstehend verschiedene Ausführungsbeispiele beschrieben worden sind, ist es selbstverständlich, dass sie nur beispielhaft und nicht beschränkend präsentiert worden sind. Somit sollte der Bereich der Erfindung nicht durch irgendeines der vorstehend beschriebenen beispielhaften Ausführungsbeispiele beschränkt werden, sondern sollte nur gemäß den folgenden Patentansprüchen definiert werden.

Claims (9)

  1. Vorrichtung zum Betreiben von komponentenbasierter Software, die zum Auswählen von Aufgaben in der Lage ist, wobei die Vorrichtung einen Computer aufweist und umfasst: eine Datenkomponente (906), die den Computer zum Speichern, Wiedergewinnen und Manipulieren von Daten unter Nutzung einer Vielzahl von Funktionen veranlasst; und eine Clientkomponente, die aufweist: einen Clientkomponentenadapter (208), der den Computer zum Senden und Empfangen von Daten zu/von der Datenkomponente veranlasst; ein Geschäftsobjekt (207), das den Computer zum Bereitstellen eines Daten-Caches veranlasst und eine Logik zum Veranlassen des Computers zum Manipulieren der Daten aufweist; eine Benutzerschnittstellensteuerungseinrichtung (206), die den Computer zum Handhaben von durch einen Benutzer erzeugten Ereignissen unter Nutzung des Geschäftsobjekts (207) zum Speichern von Daten im Cache und des Clientkomponentenadapters (208) zum letztendlichen Persistentmachen von Daten in einer Datenablage (908) veranlasst, wobei die Clientkomponente den Computer dazu veranlasst, es einem Benutzer zu ermöglichen, durch einen Angestellten durchzuführende Aufgaben zu definieren, die beim Abschluss ein Ziel erreichen, es dem Benutzer zu ermöglichen, Regeln einzugeben, die vorschreiben, welche der Aufgaben basierend auf vorbestimmten benutzererzeugten Ereignissen ausgewählt werden sollte, zumindest ein Ereignis zu empfangen und die Aufgabe auszugeben und anzuzeigen, die basierend auf dem empfangenen Ereignis gemäß den benutzerdefinierten Regeln ausgewählt wird.
  2. Vorrichtung nach Anspruch 1, wobei die Clientkomponente den Computer ferner zum Angeben, welche Aufgaben abgeschlossen sind, veranlasst.
  3. Vorrichtung nach Anspruch 1, wobei das empfangene Ereignis von einer Ereigniswarteschlange bereitgestellt wird.
  4. Vorrichtung nach Anspruch 3, wobei die Ereigniswarteschlange mit Ereignissen von anderen Komponenten eines Systems bestückt ist.
  5. Vorrichtung nach Anspruch 3, wobei die Ereigniswarteschlange mit Ereignissen von anderen Anwendungen bestückt ist.
  6. Vorrichtung nach Anspruch 1, wobei das Ziel versicherungsbezogen ist.
  7. Vorrichtung nach Anspruch 1, wobei die ausgegebenen Aufgaben für einen Aufgabenassistenten bereitgestellt werden.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, die ferner umfasst ein Benutzerschnittstellenformularcodesegment (204), das den Computer zum Sammeln von Daten aus einer Benutzereingabe veranlasst; und ein Clientkomponentenadaptercodesegment (208), das zum Senden von Daten zu einer Serverkomponente (222) eingerichtet ist; wobei die Benutzerschnittstellensteuerungseinrichtung (206) ein Benutzerschnittstellensteuerungseinrichtungscodesegment umfasst, das den Computer zum Handhaben von durch den mit dem Benutzerschnittstellenformularcodesegment (204) interagierenden Benutzer erzeugten Ereignissen zum Bereitstellen einer Validierung in einer Logikarbeitseinheit, die eine Logik zum Interagieren mit einem Geschäftsobjekt oder mehreren Geschäftsobjekten (207) enthält, zum Interagieren mit dem Clientkomponentenadapter (208), zum Hinzufügen, Wiedergewinnen, Modifizieren oder Löschen von Geschäftsobjekten (207) und zum Bereitstellen einer Schmutzzustandsmerkerverarbeitung zum Benachrichtigen eines Benutzers von einer Änderungsverarbeitung veranlasst.
  9. Vorrichtung nach einem der Ansprüche 1 bis 8 zum Ermöglichen einer Kommunikation zwischen einer Vielzahl von Clients und einem Server zum Handhaben von Aufgaben, die umfasst: eine Clientkomponente oder mehrere Clientkomponenten, die in jedem Client enthalten ist oder sind, wobei jede Clientkomponente jedes Clients den Computer zum Kommunizieren und Manipulieren von Daten mit einem ersten Datentyp veranlasst; eine Serverkomponente oder mehrere Serverkomponenten (222), die den Computer zum Kommunizieren und Manipulieren von Daten mit einem zweiten Datentyp veranlasst oder veranlassen; und einen Clientkomponentenadapter oder mehrere Clientkomponentenadapter (208), der oder die in jedem Client enthalten ist oder sind und den Computer zum Übersetzen von Daten von der einen Clientkomponente oder den mehreren Clientkomponenten in den zweiten Datentyp, wenn Daten von dem Client zu dem Server kommuniziert werden, und ferner zum Übersetzen von Daten von der einen Serverkomponente oder den mehreren Serverkomponenten in den ersten Datentyp, wenn Daten von dem Server zu dem Client kommuniziert werden, veranlasst oder veranlassen.
DE60029349T 1999-05-04 2000-05-04 Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen Expired - Lifetime DE60029349T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/305,234 US7617240B2 (en) 1999-05-04 1999-05-04 Component based task handling during claim processing
US305234 1999-05-04
PCT/US2000/012240 WO2000067181A2 (en) 1999-05-04 2000-05-04 Method and article of manufacture for component based task handling during claim processing

Publications (2)

Publication Number Publication Date
DE60029349D1 DE60029349D1 (de) 2006-08-24
DE60029349T2 true DE60029349T2 (de) 2007-07-05

Family

ID=23179936

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60029349T Expired - Lifetime DE60029349T2 (de) 1999-05-04 2000-05-04 Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen

Country Status (8)

Country Link
US (1) US7617240B2 (de)
EP (3) EP1250667B1 (de)
AT (1) ATE333127T1 (de)
AU (1) AU4701900A (de)
CA (1) CA2371703C (de)
DE (1) DE60029349T2 (de)
ES (1) ES2267534T3 (de)
WO (1) WO2000067181A2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979382B2 (en) * 1999-05-04 2011-07-12 Accenture Global Services Limited Component based information linking during claim processing
US7013284B2 (en) * 1999-05-04 2006-03-14 Accenture Llp Component based interface to handle tasks during claim processing
US7617240B2 (en) * 1999-05-04 2009-11-10 Accenture Llp Component based task handling during claim processing
US7337174B1 (en) * 1999-07-26 2008-02-26 Microsoft Corporation Logic table abstraction layer for accessing configuration information
WO2001057720A2 (en) * 2000-02-04 2001-08-09 America Online Incorporated Automated client-server data validation
AU2001233111A1 (en) 2000-02-04 2001-08-14 America Online Incorporated Optimized delivery of web application code
US20040143446A1 (en) * 2001-03-20 2004-07-22 David Lawrence Long term care risk management clearinghouse
US8121937B2 (en) 2001-03-20 2012-02-21 Goldman Sachs & Co. Gaming industry risk management clearinghouse
US8209246B2 (en) 2001-03-20 2012-06-26 Goldman, Sachs & Co. Proprietary risk management clearinghouse
US8140415B2 (en) 2001-03-20 2012-03-20 Goldman Sachs & Co. Automated global risk management
DE10128158A1 (de) * 2001-06-11 2003-01-02 Siemens Ag Programmierwerkzeug und Programmierverfahren
US7552203B2 (en) * 2001-10-17 2009-06-23 The Boeing Company Manufacturing method and software product for optimizing information flow
US7818186B2 (en) 2001-12-31 2010-10-19 Genworth Financial, Inc. System for determining a confidence factor for insurance underwriting suitable for use by an automated system
US8005693B2 (en) 2001-12-31 2011-08-23 Genworth Financial, Inc. Process for determining a confidence factor for insurance underwriting suitable for use by an automated system
US7899688B2 (en) 2001-12-31 2011-03-01 Genworth Financial, Inc. Process for optimization of insurance underwriting suitable for use by an automated system
US7844476B2 (en) 2001-12-31 2010-11-30 Genworth Financial, Inc. Process for case-based insurance underwriting suitable for use by an automated system
US7844477B2 (en) 2001-12-31 2010-11-30 Genworth Financial, Inc. Process for rule-based insurance underwriting suitable for use by an automated system
US7895062B2 (en) 2001-12-31 2011-02-22 Genworth Financial, Inc. System for optimization of insurance underwriting suitable for use by an automated system
US8793146B2 (en) * 2001-12-31 2014-07-29 Genworth Holdings, Inc. System for rule-based insurance underwriting suitable for use by an automated system
US7885829B2 (en) 2002-08-07 2011-02-08 Metropolitan Property And Casualty Insurance Company System and method for identifying and assessing comparative negligence in insurance claims
US7424702B1 (en) * 2002-08-19 2008-09-09 Sprint Communications Company L.P. Data integration techniques for use in enterprise architecture modeling
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US8230445B2 (en) * 2003-01-14 2012-07-24 International Business Machines Corporation Event management method and system
US20040139451A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Autonomous dynamic behavior modification in an event management system
US20040139447A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Message suppression in an event management system
CA2416393A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Notification service in an event management system
CA2416355A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Iterative escalation in an event management system
CA2416349A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Dynamic recipients in an event management system
US20040138931A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Trend detection in an event management system
CA2416400A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Event management system and method
CA2416337A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Contextual drill through in an event management system
TW588238B (en) * 2003-02-13 2004-05-21 Micro Star Int Co Ltd Program debugging method
US7801748B2 (en) 2003-04-30 2010-09-21 Genworth Financial, Inc. System and process for detecting outliers for insurance underwriting suitable for use by an automated system
US7383239B2 (en) 2003-04-30 2008-06-03 Genworth Financial, Inc. System and process for a fusion classification for insurance underwriting suitable for use by an automated system
US7813945B2 (en) 2003-04-30 2010-10-12 Genworth Financial, Inc. System and process for multivariate adaptive regression splines classification for insurance underwriting suitable for use by an automated system
US8126742B2 (en) 2003-05-09 2012-02-28 Accenture Global Services Limited Automated assignment of insurable events
US7912820B2 (en) * 2003-06-06 2011-03-22 Microsoft Corporation Automatic task generator method and system
US7533372B2 (en) * 2003-08-05 2009-05-12 Microsoft Corporation Cross language migration
US8463624B2 (en) * 2003-09-19 2013-06-11 Oracle International Corporation Techniques for ensuring data security among participants in a web-centric insurance management system
US8612262B1 (en) 2003-11-19 2013-12-17 Allstate Insurance Company Market relationship management
US7849438B1 (en) 2004-05-27 2010-12-07 Sprint Communications Company L.P. Enterprise software development process for outsourced developers
US8762191B2 (en) 2004-07-02 2014-06-24 Goldman, Sachs & Co. Systems, methods, apparatus, and schema for storing, managing and retrieving information
US8510300B2 (en) 2004-07-02 2013-08-13 Goldman, Sachs & Co. Systems and methods for managing information associated with legal, compliance and regulatory risk
US8442953B2 (en) 2004-07-02 2013-05-14 Goldman, Sachs & Co. Method, system, apparatus, program code and means for determining a redundancy of information
US8996481B2 (en) 2004-07-02 2015-03-31 Goldman, Sach & Co. Method, system, apparatus, program code and means for identifying and extracting information
US8583514B2 (en) * 2004-08-13 2013-11-12 Jeffrey Brian Klem System and method for tracking information in a business environment
US8566125B1 (en) 2004-09-20 2013-10-22 Genworth Holdings, Inc. Systems and methods for performing workflow
US7536710B2 (en) * 2005-01-28 2009-05-19 Microsoft Corporation Application-backed groups in a common address book
US20060259333A1 (en) * 2005-05-16 2006-11-16 Inventum Corporation Predictive exposure modeling system and method
US8484065B1 (en) 2005-07-14 2013-07-09 Sprint Communications Company L.P. Small enhancement process workflow manager
AU2013201480B2 (en) * 2005-11-01 2014-01-23 Duck Creek Technologies Limited Collaborative intelligent task processor for insurance claims
US7933786B2 (en) 2005-11-01 2011-04-26 Accenture Global Services Limited Collaborative intelligent task processor for insurance claims
US20070192152A1 (en) * 2006-02-13 2007-08-16 Itt Manufacturing Enterprises, Inc. Software phase sequencer editor and method of editing
US8099710B2 (en) * 2006-12-14 2012-01-17 Microsoft Corporation UI behaviors
GB0702822D0 (en) * 2007-02-14 2007-03-28 Salamander Organization The Lt Organisation representational system
US20070226072A1 (en) * 2007-03-01 2007-09-27 Paul Gross System and method for managing the sale of salvage items in connection with the management of an insurance claim
US20070226016A1 (en) * 2007-03-01 2007-09-27 Paul Gross System and method for certifying the restoration of damaged property
US20070226018A1 (en) * 2007-03-01 2007-09-27 Paul Gross System and method for managing an insurance claim
US7877305B2 (en) 2007-03-01 2011-01-25 Code Blue, Llc System and method for automatically monitoring the performance of a contractor in the management of an insurance claim
US8515786B2 (en) 2008-02-22 2013-08-20 Accenture Global Services Gmbh Rule generation system adapted for an insurance claim processing system
US8478769B2 (en) 2008-02-22 2013-07-02 Accenture Global Services Limited Conversational question generation system adapted for an insurance claim processing system
US20090271214A1 (en) * 2008-04-29 2009-10-29 Affiliated Computer Services, Inc. Rules engine framework
US8589862B2 (en) * 2008-06-02 2013-11-19 Microsoft Corporation Application loading
US8413115B1 (en) * 2008-08-28 2013-04-02 Raytheon Company Specifying integration points of a system-of-systems
US9002721B2 (en) * 2008-10-08 2015-04-07 Appirio, Inc. System and method for project management and completion
US8452678B2 (en) * 2009-12-22 2013-05-28 Hartford Fire Insurance Company System and method for administering an advanced insurance component-based product
US20120047330A1 (en) * 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
US8776014B2 (en) 2010-09-23 2014-07-08 Microsoft Corporation Software build analysis
US10346422B2 (en) 2012-10-18 2019-07-09 International Business Machines Corporation Use of proxy objects for integration between a content management system and a case management system
US20140114864A1 (en) * 2012-10-22 2014-04-24 International Business Machines Corporation Case management integration with external content repositories
US9672228B2 (en) 2013-03-11 2017-06-06 Honeywell International Inc. Methods and systems for creating a complex user interface adapting a generic database software application to individually manage subset domains in complex database
US9619364B2 (en) * 2013-03-14 2017-04-11 Nvidia Corporation Grouping and analysis of data access hazard reports
US20150006205A1 (en) * 2013-06-28 2015-01-01 Christopher Corey Chase System and method providing automobile insurance resource tool
US9569469B2 (en) 2013-07-26 2017-02-14 Honeywell International Inc. Methods and systems for providing intuitive direction for populating complex model content into a database
US9886736B2 (en) 2014-01-20 2018-02-06 Nvidia Corporation Selectively killing trapped multi-process service clients sharing the same hardware context
US10007493B1 (en) * 2014-12-30 2018-06-26 EMC IP Holding Company LLC Event based validation
US10332212B2 (en) * 2016-10-26 2019-06-25 International Business Machines Corporation Automation and validation of insurance claims for infrastructure risks and failures in multi-processor computing environments
EP3598377A1 (de) 2018-07-20 2020-01-22 KBC Groep NV Verbesserte anspruchshandhabung
CN110134876B (zh) * 2019-01-29 2021-10-26 国家计算机网络与信息安全管理中心 一种基于群智传感器的网络空间群体性事件感知与检测方法
US20220004482A1 (en) 2020-07-06 2022-01-06 Grokit Data, Inc. Automation system and method
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11803814B1 (en) * 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment

Family Cites Families (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648037A (en) 1984-03-15 1987-03-03 Metropolitan Life Insurance Company Method and apparatus for benefit and financial communication
US4713755A (en) 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US5216603A (en) 1985-11-18 1993-06-01 Action Technologies, Inc. Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants
US5208748A (en) 1985-11-18 1993-05-04 Action Technologies, Inc. Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants
US4831526A (en) * 1986-04-22 1989-05-16 The Chubb Corporation Computerized insurance premium quote request and policy issuance system
US5790116A (en) 1989-06-30 1998-08-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5557515A (en) 1989-08-11 1996-09-17 Hartford Fire Insurance Company, Inc. Computerized system and method for work management
US5182705A (en) 1989-08-11 1993-01-26 Itt Corporation Computer system and method for work management
ES2106771T3 (es) * 1989-11-30 1997-11-16 Seer Technologies Inc Utilidad de ingenieria del software asistida por ordenador.
US5181162A (en) 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5191522A (en) * 1990-01-18 1993-03-02 Itt Corporation Integrated group insurance information processing and reporting system based upon an enterprise-wide data structure
JPH0625984B2 (ja) 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
US5367619A (en) 1990-04-27 1994-11-22 Eaton Corporation Electronic data entry system employing an expert system to facilitate generation of electronic data forms with complex interrelationships between fields and subforms
CA2025201C (en) 1990-09-12 1992-09-01 Dominic Carbone Electronic accident estimating system
CA2054026A1 (en) 1990-10-31 1992-05-01 William Monroe Turpin Goal oriented electronic form system
US5392428A (en) 1991-06-28 1995-02-21 Robins; Stanford K. Text analysis system
CA2045907C (en) 1991-06-28 1998-12-15 Gerald B. Anderson A method for storing and retrieving annotations and redactions in final form documents
JPH05197573A (ja) 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> タスク指向パラダイムによるタスク管理システム
US5404518A (en) 1991-12-19 1995-04-04 Answer Computer, Inc. System for building a user-determined database of solution documents from queries that fail within it and from the search steps that do provide a solution
US5726884A (en) 1992-03-02 1998-03-10 Alternative Systems, Inc. Integrated hazardous substance tracking and compliance
US5655085A (en) * 1992-08-17 1997-08-05 The Ryan Evalulife Systems, Inc. Computer system for automated comparing of universal life insurance policies based on selectable criteria
US5673402A (en) * 1992-08-17 1997-09-30 The Homeowner's Endorsement Plan Incorporated Computer system for producing an illustration of an investment repaying a mortgage
US5325291A (en) * 1992-10-22 1994-06-28 Thomas L. Garrett Method of verifying insurance on registered vehicles
US5420973A (en) 1992-12-31 1995-05-30 At&T Corp. Abridgment of text-based display information
US5630069A (en) 1993-01-15 1997-05-13 Action Technologies, Inc. Method and apparatus for creating workflow maps of business processes
AU6133594A (en) 1993-02-08 1994-08-29 Action Technologies, Inc. Method and apparatus for managing business processes
JP3168756B2 (ja) 1993-02-24 2001-05-21 ミノルタ株式会社 電子メールシステムのメール管理方法
US6058413A (en) 1993-02-25 2000-05-02 Action Technologies, Inc. Method and apparatus for utilizing a standard transaction format to provide application platform and a medium independent representation and transfer of data for the management of business process and their workflows
US5369704A (en) 1993-03-24 1994-11-29 Engate Incorporated Down-line transcription system for manipulating real-time testimony
US5446653A (en) 1993-05-10 1995-08-29 Aetna Casualty And Surety Company Rule based document generation system
US5950169A (en) * 1993-05-19 1999-09-07 Ccc Information Services, Inc. System and method for managing insurance claim processing
GB9322137D0 (en) 1993-10-27 1993-12-15 Logical Water Limited A system and method for defining a process structure for performing a task
US5623679A (en) 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects
EP0654746B1 (de) 1993-11-24 2003-02-12 Canon Kabushiki Kaisha System zum Identifizieren und Verarbeiten von Formularen
US5734837A (en) 1994-01-14 1998-03-31 Action Technologies, Inc. Method and apparatus for building business process applications in terms of its workflows
US5890130A (en) 1994-02-04 1999-03-30 International Business Machines Corporation Workflow modelling system
US5560005A (en) 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5638539A (en) 1994-02-28 1997-06-10 International Business Machines Corporation Tool for defining complex systems
US5848271A (en) 1994-03-14 1998-12-08 Dun & Bradstreet Software Services, Inc. Process and apparatus for controlling the work flow in a multi-user computing system
US5445653A (en) 1994-03-28 1995-08-29 Rossville Yarn, Inc. Method of dyeing nylon to produce colorfast fiber which resists further dyeing
US5523942A (en) 1994-03-31 1996-06-04 New England Mutual Life Insurance Company Design grid for inputting insurance and investment product information in a computer system
US5721913A (en) 1994-05-05 1998-02-24 Lucent Technologies Inc. Integrated activity management system
US5745687A (en) 1994-09-30 1998-04-28 Hewlett-Packard Co System for distributed workflow in which a routing node selects next node to be performed within a workflow procedure
US5768506A (en) 1994-09-30 1998-06-16 Hewlett-Packard Co. Method and apparatus for distributed workflow building blocks of process definition, initialization and execution
US5826020A (en) 1994-09-30 1998-10-20 Hewlett-Packard Co. Workflow real time intervention
US5745901A (en) 1994-11-08 1998-04-28 Kodak Limited Workflow initiated by graphical symbols
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
JPH08297669A (ja) 1994-12-27 1996-11-12 Internatl Business Mach Corp <Ibm> 複合ドキュメント内の複数のパートを自動的にリンクするシステムおよび方法
US5839112A (en) * 1994-12-28 1998-11-17 Automatic Data Processing Method and apparatus for displaying and selecting vehicle parts
WO1996031828A1 (en) * 1995-01-09 1996-10-10 Talati Kirit K Control system and method for direct execution of software application information models without code generation
US5671360A (en) 1995-01-20 1997-09-23 International Business Machines Corporation Project management tool implementing authority for a people oriented work environment tool
US5836011A (en) 1995-01-20 1998-11-10 International Business Machines Corporation Implementation of teams and roles within a people oriented work environment
JP2923552B2 (ja) 1995-02-13 1999-07-26 富士通株式会社 組織活動データベースの構築方法,それに使用する分析シートの入力方法及び組織活動管理システム
US5758351A (en) * 1995-03-01 1998-05-26 Sterling Software, Inc. System and method for the creation and use of surrogate information system objects
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5592611A (en) 1995-03-14 1997-01-07 Network Integrity, Inc. Stand-in computer server
US5649182A (en) 1995-03-17 1997-07-15 Reitz; Carl A. Apparatus and method for organizing timeline data
US5615337A (en) 1995-04-06 1997-03-25 International Business Machines Corporation System and method for efficiently processing diverse result sets returned by a stored procedures
JPH08292755A (ja) 1995-04-20 1996-11-05 Fuji Xerox Co Ltd 文書出力制御装置及び制御方法
US6044382A (en) 1995-05-19 2000-03-28 Cyber Fone Technologies, Inc. Data transaction assembly server
US5691897A (en) 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
US5687385A (en) 1995-06-01 1997-11-11 Epi Data entry using linked lists
US5999911A (en) 1995-06-02 1999-12-07 Mentor Graphics Corporation Method and system for managing workflow
DE69523939T2 (de) 1995-06-07 2002-05-29 Ibm Verfahren zur erzeugung von objektstrukturen für den zugriff auf konventionelle, nicht objekt-orientierte geschäftsanwendungen
US5664109A (en) 1995-06-07 1997-09-02 E-Systems, Inc. Method for extracting pre-defined data items from medical service records generated by health care providers
US6065000A (en) 1996-07-19 2000-05-16 Star Solutions & Consulting Services Computer-implemented process of reporting injured worker information
US5819230A (en) 1995-08-08 1998-10-06 Homevest Financial Group, Inc. System and method for tracking and funding asset purchase and insurance policy
US7181427B1 (en) * 1995-09-12 2007-02-20 Jp Morgan Chase Bank, N.A. Automated credit application system
DE19535084A1 (de) 1995-09-21 1997-03-27 Ibm Verfahren und Vorrichtung zur dynamischen Optimierung von durch ein Computersystem gemanagten Geschäftsprozessen
US5826237A (en) 1995-10-20 1998-10-20 Araxsys, Inc. Apparatus and method for merging medical protocols
US6426759B1 (en) * 1995-10-20 2002-07-30 Confer Software, Inc. Apparatus and method for managing changes of computerized medical protocols
US5886693A (en) 1995-10-20 1999-03-23 Araxsys, Inc. Method and apparatus for processing data across a computer network
US6067525A (en) 1995-10-30 2000-05-23 Clear With Computers Integrated computerized sales force automation system
US5706452A (en) 1995-12-06 1998-01-06 Ivanov; Vladimir I. Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers
US5870711A (en) 1995-12-11 1999-02-09 Sabre Properties, Inc. Method and system for management of cargo claims
US5799297A (en) 1995-12-15 1998-08-25 Ncr Corporation Task workflow management system and method including an external program execution feature
US5848393A (en) 1995-12-15 1998-12-08 Ncr Corporation "What if . . . " function for simulating operations within a task workflow management system
US5907828A (en) * 1995-12-26 1999-05-25 Meyer; Bennett S. System and method for implementing and administering lender-owned credit life insurance policies
JPH09212493A (ja) 1996-01-31 1997-08-15 Fuji Xerox Co Ltd 文書処理装置
US5991733A (en) 1996-03-22 1999-11-23 Hartford Fire Insurance Company Method and computerized system for managing insurance receivable accounts
US6003007A (en) 1996-03-28 1999-12-14 Dirienzo; Andrew L. Attachment integrated claims system and operating method therefor
AU2453797A (en) * 1996-04-10 1997-10-29 Paul M. Konnersman Computer-based system for work processes that consist of interdependent decisions involving one or more participants
US5899989A (en) 1996-05-14 1999-05-04 Sharp Kabushiki Kaisha On-demand interface device
DE19712946A1 (de) 1996-05-30 1997-12-04 Ibm Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
US5903873A (en) 1996-05-31 1999-05-11 American General Life And Accident Insurance Company System for registering insurance transactions and communicating with a home office
US5862327A (en) 1996-06-10 1999-01-19 Tactica Corporation Activity based long-lived transaction system
US5855005A (en) * 1996-06-24 1998-12-29 Insurance Company Of North America System for electronically auditing exposures used for determining insurance premiums
US5881230A (en) 1996-06-24 1999-03-09 Microsoft Corporation Method and system for remote automation of object oriented applications
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
JP3898782B2 (ja) 1996-08-23 2007-03-28 オリンパス株式会社 情報記録再生装置
US5826239A (en) 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
US5940804A (en) 1996-12-18 1999-08-17 Turley; William N. Computer executable workflow resource management system
US5956691A (en) * 1997-01-07 1999-09-21 Second Opinion Financial Systems, Inc. Dynamic policy illustration system
EP0854431A3 (de) 1997-01-20 2001-03-07 International Business Machines Corporation Ereignisse als Aktivitäten in Modellen von Arbeitsflussverwaltungssystemen
US5873066A (en) * 1997-02-10 1999-02-16 Insurance Company Of North America System for electronically managing and documenting the underwriting of an excess casualty insurance policy
US6021418A (en) 1997-02-18 2000-02-01 International Business Machines Corporation Apparatus and method for displaying control-objects
US6108673A (en) 1997-02-25 2000-08-22 International Business Machines Corporation System for creating a form from a template that includes replication block
US5920696A (en) 1997-02-25 1999-07-06 International Business Machines Corporation Dynamic windowing system in a transaction base network for a client to request transactions of transient programs at a server
US6041304A (en) 1997-02-26 2000-03-21 Meyer-Chatfield, Inc. System and method for controlling the cash value growth of an insurance policy
US5956687A (en) 1997-04-04 1999-09-21 Wamsley; Vaughn A. Personal injury claim management system
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6023578A (en) * 1997-05-09 2000-02-08 International Business Macines Corporation Systems, methods and computer program products for generating an object oriented application for an object oriented environment
US6158044A (en) * 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US6349320B1 (en) * 1997-06-03 2002-02-19 Fmr Corp. Computer executable workflow management and control system
US6061665A (en) 1997-06-06 2000-05-09 Verifone, Inc. System, method and article of manufacture for dynamic negotiation of a network payment framework
US6119093A (en) 1997-07-01 2000-09-12 Walker Asset Management Limited Partnership System for syndication of insurance
US5974390A (en) * 1997-07-21 1999-10-26 The Mutual Life Insurance Company Of New York System and method for assuring predictable gains
DE69811790T2 (de) * 1997-08-01 2003-11-20 Ibm Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen
US6141011A (en) 1997-08-04 2000-10-31 Starfish Software, Inc. User interface methodology supporting light data entry for microprocessor device having limited user input
US6070152A (en) 1997-08-14 2000-05-30 International Business Machines Corporation Framework for business applications providing financial integration
US5970464A (en) 1997-09-10 1999-10-19 International Business Machines Corporation Data mining based underwriting profitability analysis
US6163781A (en) * 1997-09-11 2000-12-19 Physician Weblink Technology Services, Inc. Object-to-relational data converter mapping attributes to object instance into relational tables
US5946694A (en) 1997-09-29 1999-08-31 International Business Machines Corporation Apparatus and method for transparent application of service to business objects
US6012066A (en) 1997-10-01 2000-01-04 Vallon, Inc. Computerized work flow system
JP3507302B2 (ja) * 1997-10-02 2004-03-15 株式会社日立製作所 システム構成提案支援方法およびツール
US6055519A (en) 1997-10-11 2000-04-25 I2 Technologies, Inc. Framework for negotiation and tracking of sale of goods
US6131155A (en) 1997-11-07 2000-10-10 Pmc Sierra Ltd. Programmer-visible uncached load/store unit having burst capability
US6256636B1 (en) * 1997-11-26 2001-07-03 International Business Machines Corporation Object server for a digital library system
US6115646A (en) 1997-12-18 2000-09-05 Nortel Networks Limited Dynamic and generic process automation system
US6003011A (en) 1998-01-07 1999-12-14 Xerox Corporation Workflow management system wherein ad-hoc process instances can be generalized
US6370508B2 (en) * 1998-09-11 2002-04-09 Genesys Telecommunications Laboratories, Inc. Interface engine for managing business processes within a multimedia communication-center
US6125363A (en) 1998-03-30 2000-09-26 Buzzeo; Eugene Distributed, multi-user, multi-threaded application development method
US6430538B1 (en) * 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6023572A (en) 1998-05-12 2000-02-08 Unisys Corporation Computer based system and method for modeling activities of people in an organization
US6078890A (en) 1998-06-01 2000-06-20 Ford Global Technologies, Inc. Method and system for automated health care rate renewal and quality assessment
US7039597B1 (en) * 1998-06-05 2006-05-02 I2 Technologies Us, Inc. Method and system for managing collaboration within and between enterprises
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
US6728947B1 (en) * 1998-06-05 2004-04-27 R. R. Donnelley & Sons Company Workflow distributing apparatus and method
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397191B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Object-oriented workflow for multi-enterprise collaboration
US6098070A (en) 1998-06-09 2000-08-01 Hipersoft Corp. Case management for a personal injury plaintiff's law office using a relational database
US6505176B2 (en) * 1998-06-12 2003-01-07 First American Credit Management Solutions, Inc. Workflow management system for an automated credit application system
US6349238B1 (en) * 1998-09-16 2002-02-19 Mci Worldcom, Inc. System and method for managing the workflow for processing service orders among a variety of organizations within a telecommunications company
US6336096B1 (en) * 1998-10-09 2002-01-01 Donald V. Jernberg System and method for evaluating liability
US6279009B1 (en) * 1998-12-04 2001-08-21 Impresse Corporation Dynamic creation of workflows from deterministic models of real world processes
US6763353B2 (en) * 1998-12-07 2004-07-13 Vitria Technology, Inc. Real time business process analysis method and apparatus
US6389588B1 (en) * 1999-02-04 2002-05-14 Relativity Technologies Method and system of business rule extraction from existing applications for integration into new applications
GB9903830D0 (en) * 1999-02-19 1999-04-14 Salamander Limited Process-systems integration method
US6233537B1 (en) * 1999-03-26 2001-05-15 E.Piphany, Inc. Workflow modeling language
US7000186B1 (en) * 1999-05-03 2006-02-14 Amicas, Inc. Method and structure for electronically transmitting a text document and linked information
US7617240B2 (en) * 1999-05-04 2009-11-10 Accenture Llp Component based task handling during claim processing
US6738757B1 (en) * 1999-06-02 2004-05-18 Workwise, Inc. System for database monitoring and agent implementation
IE20000336A1 (en) * 1999-06-30 2001-03-21 Phoenix Technology Patent Dev A work flow management system
US6415259B1 (en) * 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US6519578B1 (en) * 1999-08-09 2003-02-11 Mindflow Technologies, Inc. System and method for processing knowledge items of a knowledge warehouse
US8015049B1 (en) * 1999-08-18 2011-09-06 S.F. Ip Properties 61 Llc On-line appointment system
US6792086B1 (en) * 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
US6888929B1 (en) * 1999-08-24 2005-05-03 Microstrategy, Inc. Revenue generation method for use with voice network access provider system and method
US6380951B1 (en) * 1999-10-01 2002-04-30 Global Graphics Software Limited Prepress workflow method and program
US6738736B1 (en) * 1999-10-06 2004-05-18 Accenture Llp Method and estimator for providing capacacity modeling and planning
US6874008B1 (en) * 1999-10-11 2005-03-29 I2 Technologies Us, Inc. Workflow encapsulation in stateless environments
US7007227B1 (en) * 1999-11-24 2006-02-28 International Business Machines Corporation Contract handling method and system
US6769112B1 (en) * 2000-02-11 2004-07-27 David J. Montana Domain-independent reconfigurable scheduler
US7249157B2 (en) * 2000-02-16 2007-07-24 Bea Systems, Inc. Collaboration system for exchanging of data between electronic participants via collaboration space by using a URL to identify a combination of both collaboration space and business protocol
US6918053B1 (en) * 2000-04-28 2005-07-12 Microsoft Corporation Compensation framework for long running transactions
US6516322B1 (en) * 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi
US6768984B2 (en) * 2000-06-27 2004-07-27 Metapower Llc Method and apparatus for process design
US7051074B1 (en) * 2000-08-22 2006-05-23 At&T Corp. Graph algorithm for common neighborhood analysis
US6868193B1 (en) * 2000-09-08 2005-03-15 Corel Inc. Method and apparatus for varying automated data processing
JP4517260B2 (ja) * 2000-09-11 2010-08-04 日本電気株式会社 自動通訳システム、自動通訳方法、および自動通訳用プログラムを記録した記憶媒体
US7249180B2 (en) * 2000-09-14 2007-07-24 International Business Machines Corporation Method and system for marketplace social proxies
US6993528B1 (en) * 2000-10-04 2006-01-31 Microsoft Corporation Methods and systems for allowing third party client applications to influence implementation of high-level document commands
US6889375B1 (en) * 2000-11-17 2005-05-03 Cisco Technology, Inc. Method and system for application development
US7013309B2 (en) * 2000-12-18 2006-03-14 Siemens Corporate Research Method and apparatus for extracting anchorable information units from complex PDF documents
US6901405B1 (en) * 2000-12-20 2005-05-31 Microsoft Corporation Method for persisting a schedule and database schema
US7184967B1 (en) * 2001-03-06 2007-02-27 Microsoft Corporation System and method utilizing a graphical user interface of a business process workflow scheduling program
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US7047535B2 (en) * 2001-07-30 2006-05-16 International Business Machines Corporation Method, system, and program for performing workflow related operations using an application programming interface
US7228547B2 (en) * 2001-07-30 2007-06-05 International Business Machines Corporation Method, system, and program for enabling access to a plurality of services
US6920456B2 (en) * 2001-07-30 2005-07-19 International Business Machines Corporation Method, system, and program for maintaining information in database tables and performing operations on data in the database tables
US7051036B2 (en) * 2001-12-03 2006-05-23 Kraft Foods Holdings, Inc. Computer-implemented system and method for project development
US6687557B2 (en) * 2002-02-19 2004-02-03 Norman Ken Ouchi Consolidated component catalog
US20030217054A1 (en) * 2002-04-15 2003-11-20 Bachman George E. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7216163B2 (en) * 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US20070006463A1 (en) * 2005-07-07 2007-01-11 Eveready Battery Company, Inc. Integrated wet shaving and trimming implement
US7885831B2 (en) * 2006-01-05 2011-02-08 Guidewire Software, Inc. Insurance product model-based apparatus and method
US20070233928A1 (en) * 2006-03-31 2007-10-04 Robert Gough Mechanism and apparatus for dynamically providing required resources for a hot-added PCI express endpoint or hierarchy

Also Published As

Publication number Publication date
US20030145124A1 (en) 2003-07-31
EP1688880A3 (de) 2006-09-20
CA2371703C (en) 2013-12-17
US7617240B2 (en) 2009-11-10
DE60029349D1 (de) 2006-08-24
WO2000067181A3 (en) 2002-08-15
EP2336961A1 (de) 2011-06-22
EP1688880A2 (de) 2006-08-09
WO2000067181A2 (en) 2000-11-09
ATE333127T1 (de) 2006-08-15
ES2267534T3 (es) 2007-03-16
EP1250667B1 (de) 2006-07-12
AU4701900A (en) 2000-11-17
EP2336961B1 (de) 2018-01-24
EP1250667A2 (de) 2002-10-23
CA2371703A1 (en) 2000-11-09

Similar Documents

Publication Publication Date Title
DE60029349T2 (de) Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen
US10068190B2 (en) Component based interface to handle tasks during claim processing
US8224859B2 (en) Component based information linking during claim processing
US20030009357A1 (en) Component based organizing of projects and members of an organization during claim processing
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
US7430535B2 (en) Methods and systems for identifying prospective customers and managing deals
US20030154172A1 (en) Negotiation facilitation during claim processing
DE19844071A1 (de) Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld
MXPA05004988A (es) Un sistema y procedimiento para subrogacion electronica, manejo de flujo de trabajo entre organizaciones, procesamiento de transaccion entre organizaciones e interaccion de usuario con en una red informatica optimizada.
WO1999042942A1 (en) Component based object-relational database infrastructure and user interface
WO2007022874A1 (de) System, verfahren und computerprogrammprodukt zur arbeitsflussbasierten datenverarbeitung
US20020055937A1 (en) Immigration case management system
DE69709918T2 (de) Relationelle datenbank die in einer speicherstruktur compiliert und gespeichert ist
US20040267814A1 (en) Master test plan/system test plan database tool
US20040249656A1 (en) Stakeholder framework
Morrison Development and evaluation of a system to support team and organizational memory
DE60225272T2 (de) Netzwerk-basierte Informationenverwaltung
Putra et al. Design System of Internal Financial Report Applications (Case Study: Lppm UPN
EP1691301A1 (de) Vorgangsbearbeitungsmodul und Verfahren zum Erfassen von Daten
Yu et al. Supporting distributed corporate planning through new coordination technologies
WO2009049718A1 (de) Computerimplementiertes system und verfahren zum strukturierten speichern von daten mindestens eines vordefinierten ablaufs
Handelman Knowledge Management and Jewish Communal Agencies
WO2009030490A1 (de) Computerimplementiertes system und verfahren zum strukturierten speichern von informationen
Schmid et al. Supporting distributed corporate planning through new coordination technologies
DE10153508A1 (de) System und Verfahren für gemeinsame Datenbenutzung zwischen Mitgliedern verschiedener Organisationen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition