====== System Revision ====== Dieses Howto versucht eine bewährte, manuelle Vorgehensweise zur System Analyse/Revision aufzuzeigen. Die Praxis zeigt, dass EDI Landschaften häufigen Änderungen bzw. Anpassungen an gegebene Situationen unterworfen sind. Deshalb neigen die Ausbauten dazu, dass ein System unübersichtlich wird und oft sogar obsolete Artefakte beinhaltet, welche die Übersicht dann auch noch erschweren. eBiss bietet geeigneten Methoden an um Verwendungsnachweise für die wichtigsten Objekte zu führen und die Prozesse von A-Z per HyperLink durch die verschiedenen Prozessinstanzen zu verfolgen. Dennoch verbleiben gewisse Dinge etwas im Verborgenen und erschliessen sich erst durch weitere Analyse {{:images:sign_warning.png?nolink|}}**Hinweis:** Mit dem Modul [[ueberblick:ebiss_module:analytics:start|]] können viele der unten genannten Schritte bereits automatisch aufbereitet und in die eigene Systemdokumentation unter [[mysystem:start]] eingefügt werden. Die System Revision ist quasi ein **Reverse Engineering** welches den unter [[howtos:data_rail]] beschriebenen Vorgang umkehrt bzw. erschließt. {{:images:sign_warning.png?nolink|}}**Hinweis:** Eine konsequente Anwendung der [[howtos:namingconventions]] erleichtert die System Analyse und erhöht die Konsistenz entscheidend. Mit den folgenden Schritten ist es möglich ein System auf seine tatsächliche Funktion zu untersuchen. ===== 1. Automatisierung identifizieren===== Identifikation der aktiven [[:prozessdefinition:automatisierungen:automatisierungen|]]en((Merke: nur aktive Automatisierungen triggeren automatische Prozesse!)) ===== 2. Prozesse identifizieren ===== Öffne den Job(({{:images:sign_warning.png?nolink|}}**Hinweis:** Siehe auch [[ueberblick:start#typischer_prozess|Typischer Prozess]])) über den Link in der aktiven Automatisierung und identifiziere dessen Aufgabe.((Die Hauptunterscheidung wird anhand der im Job befindlichen Jobobjekte vorgenommen.)). ==== Klassifikation ==== - INBOUND Prozess ist zu erkennen an der Richtungseinstellung "INBOUND" der darin verwendeten [[kommunikation:kanal:start|ReceiveChannel]] oder [[prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjectretrieverex|BackendObjectRetriever]]((Empfangskanäle bzw. Objektempfänger bestimmen die Richtung des Nachrichtenflusses über alle Systeme für Nachrichten die eBiss konsumiert)). - OUTBOUND Prozess ist zu erkennen an der Richtungseinstellung "OUTBOUND" der darin verwendeten [[kommunikation:kanal:start|ReceiveChannel]] oder [[prozessdefinition:jobs:jobsteps:kommunikation:backend:backendobjectretrieverex|BackendObjectRetriever]]. - Andere Prozesse wie CleanUp, WebServer etc. die mit den eigentlichen EDI Aufgaben nichts zu tun haben aber automatisch laufen sollen. ==== Weitere Beobachtungen==== - Business Logik im Job identifizieren, siehe [[howtos:businesslogic|Business Logik]]!)) und die damit einhergehenden [[prozessdefinition:variablendefinition:start|]] und deren [[prozessdefinition:variablendefinition:verwendungsnachweis:start|]](({{:images:sign_warning.png?nolink|}}**Hinweis:** Der Variablen Verwendungsnachweis zeigt nur die Instanzen bei einem Partner, aber nicht die Verwendung in Jobs oder Mappings! Wie bzw. wo Variablen in Mappings und Jobs verwendet werden ist unter [[transformation:mappings:funktionen:verwendungsnachweis]] beschrieben.)) - {{:images:sign_warning.png?nolink|}}**Hinweis:** Verfolge alle [[prozessdefinition:jobs:jobsteps:allgemein:delegatorjob|]] oder [[prozessdefinition:jobs:jobsteps:allgemein:eventrouter|]] Pfade des Jobs! - Nehme die Einstellungen der Selektionsstrategien der [[prozessdefinition:jobs:jobsteps:allgemein:entityselector|]] und [[prozessdefinition:jobs:jobsteps:allgemein:entitytransformer|]] zur Kenntnis! - Nimm die XPATH Expressions in den [[prozessdefinition:jobs:jobsteps:allgemein:messageselector|]]en zur Kenntnis! - Nimm allfällige Vorselektionen der Repositorieen in dem [[en:prozessdefinition:jobs:jobsteps:allgemein:entityanalyzer|]] wahr! ===== 3. Integrationsarten bzw. Kommunikationskanäle identifizieren===== Identifikation der Integration und der beteiligten bzw. effektiv gebrauchter Sende/Empfangs-Kanäle bzw. BackendObjektReceiver/Transmitter und deren Eigenschaften in Abhängigkeit von [[partnerverwaltung:typset:start|Typsätze]] und festen Kanaleinstellungen in System-, Handels- oder Templatepartnern und in fest definierten [[prozessdefinition:jobs:jobsteps:kommunikation:channelsender|]]. {{:images:sign_warning.png?nolink|}}**Hinweis:** Neben den [[kommunikation:kanal:start]]n gibt es auch alternativ die Integration über [[prozessdefinition:jobs:jobsteps:kommunikation:backend:start|BackendObjektIntegrationen]] siehe [[ueberblick:integration:integrationsarten|]]. Diese Integrationen sind erkennbar an den entsprechend damit einhergehenden Jobobjekten und Variablen Instanzen auf dem Systempartner. {{:images:sign_warning.png?nolink|}}**Hinweis:** Die Gruppierungsmöglichkeiten in der eBiss Grid-View ist hier sehr hilfreich um bei vielen Kanäle den Überblick über die eingestellten Endpunkte((Die SystemEndpunkte, welche in den Kanälen definiert sind, dienen hervorragend dazu die EDI Landschaft zu skizzieren und die beteiligten Systeme zu erkennenen. Achtung: BackendIntegrationen sind anderes definiert.)) zu verschaffen. ===== 4. Nachrichtenboxen identifizieren ===== Identifikation der benötigten Nachrichtenkörbe und deren Eigenschaften((Hier bietet sich auch die Gruppierung nach Art(Richtung) an.)). Die effektiv benötigten Nachrichtenkörbe sind in direkter Abhängigkeit mit den benötigten Kanälen zu betrachten((Ausnahmen sind Nachrichtenkörbe die für andere Zwecke adhoc verwendet werden. Diese sind meist nur in den [[prozessdefinition:jobs:jobsteps:allgemein:entitymessagecreator|MessageEntityCreator]]en innerhalb der Jobs definiert.)). ===== 5. (Standard Template) Partner identifizieren===== Identifikation der TadingPartner Templates und deren [[partnerverwaltung:typset:start|Typsätze]] {{:images:sign_warning.png?nolink|}}**Hinweis:** Verwendungsnachweis der TemplatePartner benutzen! ===== 6. Mappingdefinitionen identifizieren ===== Identifikation der benötigten Mappings(({{:images:sign_warning.png?nolink|}}**Hinweis:** Verwende Mapping Referenzen Anzeigen im Kontextmenü!)) über die Abhängigkeiten in [[partnerverwaltung:typset:start|Typsatzdefinitionen]] oder [[prozessdefinition:jobs:jobsteps:allgemein:entitytransformer|]] ===== 7. Repositorien identifizieren===== Identifikation der benötigten [[prozessdefinition:repositorien:entitaetstyp:start]] und deren Komponenten((Siehe: [[prozessdefinition:repositorien:er]])) in Abhängigkeit der benötigten [[transformation:mappings:start|]] und eingestellten [[partnerverwaltung:typset:start|Typsätze]] ===== 8. Schnittstellen Typen identifizieren===== Identifikation der benötigten Plugins in Abhängigkeit der benötigten [[prozessdefinition:repositorien:entitaetstyp:start]]((Es ist nicht ohne Weiteres möglich die DLL Datei über den Entitätsnamen zu identifizieren. Auch dies geht in Essenz nur wenn [[howtos:namingconventions]] berücksichtigt wurde. Ansonsten müssen die integrationsspezifischen DLLs mit geeigneten Methoden **reverse engineered** werden, der eBiss [[programmierung:typbibliotheken:typeditor|]] ist dafür aber bestens geeignet.)).