1 Themenübersicht
Indizes können Lesezugriffe über bestimmte Attribute beschleunigen. In Entwicklungssystemen werden Indizes für Business Objects über die Anwendung „Entwicklungsobjekte“ erstellt. Üblicherweise ist ein Index auf dem Primary-Key und ein Index auf den Bussiness-Key des Business Objekts vorhanden. Die Erzeugung von Indizes auf Business Objects über die Anwendung „Entwicklungsobjekte“ geschieht in der Regel durch die Anwendungsentwickler. Das Erstellen von Indizes über die Metadaten von Business Objects hat zur Folge, dass eine neue Version des Business Objects erzeugt wird, welche über Softwareaktualisierungen transportiert werden.
Die Anwendung „Individuelle Indizes“ ermöglicht es, auf jedem System, d.h. auch auf einem Produktivsystem, Indizes anzulegen. Administratoren können mit der Anwendung im Rahmen der Performanceüberwachung datenbankspezifisch zusätzliche Indizes zur Performancesteigerung anlegen. Sie können somit ohne die Verwendung von Softwareaktualisierungen nachträglich noch Indizes auf Business Objects und Dynamic Objects anlegen. Diese Indizes können über Import bzw. Export auf andere Systeme transportiert werden.
Dynamic Objects werden anders als Business Objects nicht über Softwareaktualisierungen transportiert. Dynamic Objects können auf jeder OLTP-Datenbank, d.h. auch auf dem Produktivsystem, ohne Entwicklungsaufwand angelegt werden. Dynamic Objects werden unter anderem für die „Weiteren Felder“ und die „Artikelmerkmale“ verwendet. Dynamic Objects können in den folgenden Fällen in mehr als einer Tabelle gespeichert werden:
- Das Dynamic Object umfasst sehr viele oder sehr umfangreiche Attribute (z. B. lange Texte), sodass diese nicht mehr in einer Tabellenzeile gespeichert werden können.
- Das Dynamic Object enthält mehrwertige Attribute.
Beispiel:
Beispiel für die Tabellen eines Dynamic Objects
Mit der Anwendung „Individuelle Indizes“ können Sie Indexe auf den Tabellen der Dynamic Objects anlegen.
2 Zielgruppe
- Anwendungsentwickler
- Administratoren
3 Anwendungsbeschreibung
Die Anwendung „Individuelle Indizes“ dient der Erfassung von Tabellenindizes. Es können Indizes auf den Tabellen von Business Objects und auf den Tabellen von Dynamischen Business Objects erstellt werden. Die Anwendung ist dafür in zwei Ansichten geteilt, welche über das Ansichten-Feld in der Standardsymbolleiste ausgewählt werden können. Die Ansichten bestehen jeweils aus einem Identifikations- und einem Arbeitsbereich. Nach dem Speichern ist der individuelle Index noch nicht erzeugt, sondern nur die Metadaten dafür in die Datenbank geschrieben. Erst mit der Hintergrundanwendung „Indizes erzeugen“ werden die individuellen Indizes auf den jeweiligen Tabellen erzeugt. Die Hintergrundanwendung erzeugt alle individuellen Indizes, welche den Generierungs-Status „Vorbereitet“ haben. Ist die Erzeugung eines Index erfolgreich, so wird der Status auf „Erfolgreich“ gesetzt. Tritt bei der Erzeugung ein Fehler auf, so wird der Status auf „Fehlgeschlagen“ gesetzt. Bei der Speicherung eines individuellen Index wird der Status auf „Vorbereitet“ gesetzt.
3.1 Identifikationsbereich: Ansicht „Business Objects“
Der Identifikationsbereich enthält Felder, die einen individuellen Index eindeutig identifizieren, sowie weitere allgemeingültige Daten.
Die Inhalte der Felder werden im Folgenden detailliert beschrieben.
Feld | Erläuterung |
Index | Der Indexname bezeichnet einen Index auf einer Datenbank eindeutig.
Der Name muss mit einem Buchstaben beginnen und darf danach aus Buchstaben und Zahlen bestehen. |
Datenbank | In dieser Combobox sind alle mit dem System verbundenen Datenbanken aufgeführt.
Hierüber erfolgt die Auswahl, auf welcher Datenbank der Index angelegt werden soll. |
Business Object | Name des Business Objects, auf dessen Tabelle ein Index erzeugt werden soll. |
Kommentar | Beschreibung des Zweckes der Erzeugung des individuellen Indexes. |
Typ | Indizes vom Typ „Standard“ werden über den Dialog „Indexattribute hinzufügen/entfernen“ erstellt.
Der Typ „Unbekannt“ schaltet die Felder „SQL-Statement“ der Datenbank-Karteireiter editierbar. Der Benutzer kann hier den Befehl zur Erzeugung der Indizes in SQL-Syntax angeben. |
Tabellenname | Anzeige des Tabellennamens vom ausgewähltem Business Object |
Generierung | Gibt den Status der Generierung des individuellen Indexes an. Folgende Status existieren:
· Vorbereitet: Diesen Status bekommt ein individueller Index, wenn er gespeichert wird. · Erfolgreich: Wurde ein individueller Index erfolgreich auf der entsprechenden Tabelle erzeugt, erhält es diesen Status. · Fehlgeschlagen: Trat bei der Erzeugung des Index auf der Tabelle ein Fehler auf, erhält der individuelle Index diesen Status. |
3.2 Identifikationsbereich: Ansicht „Dynamische Business Objects“
Der Identifikationsbereich in der Ansicht Dynamische Business Objects unterscheidet sich nur geringfügig von der anderen Ansicht:
Feld | Erläuterung |
Indexname | Der Indexname bezeichnet einen Index auf einer Datenbank eindeutig.
Der Name muss mit einem Buchstaben beginnen und darf danach aus Buchstaben und Zahlen bestehen. |
Datenbank | In dieser Combobox sind alle mit dem System verbundenen Datenbanken aufgeführt.
Hierüber erfolgt die Auswahl, auf welcher Datenbank der Index angelegt werden soll. |
Tabelle | Anzeige des Tabellennamens vom ausgewähltem Dynamischen Business Object. |
Dynamic Object | Name des Dynamischen Business Objects für dessen Tabelle der Index erstellt werden soll. |
Kommentar | Beschreibung des Zweckes der Erzeugung des individuellen Indexes. |
Typ | Indizes vom Typ „Standard“ werden über den Dialog „Indexattribute hinzufügen/entfernen“ erstellt.
Der Typ „Unbekannt“ schaltet die Felder „SQL-Statement“ der Datenbank-Karteireiter editierbar. Der Benutzer kann hier den Befehl zur Erzeugung der Indizes in SQL-Syntax angeben. |
Generierung | Gibt den Status der Generierung des individuellen Indexes an. Folgende Status existieren:
· Vorbereitet: Diesen Status bekommt ein individueller Index, wenn er gespeichert wird. · Erfolgreich: Wurde ein individueller Index erfolgreich auf der entsprechenden Tabelle erzeugt, erhält es diesen Status. · Fehlgeschlagen: Trat bei der Erzeugung des Index auf der Tabelle ein Fehler auf, erhält der individuelle Index diesen Status. |
3.3 Arbeitsbereich
Der Arbeitsbereich besteht aus mehreren Karteireitern. Im ersten Karteireiter wird der Index über die Aufnahme der Attribute in die Liste definiert. Für jede unterstütze Datenbank gibt es einen weiteren Karteireiter. Auf diesem wird die SQL-Anweisung zur Erzeugung des Index für die jeweilige Datenbank angezeigt.
Die Karteireiter verhalten sich je nach gewähltem Indextypen unterschiedlich. Beim Indextyp „Standard“ wird im ersten Karteireiter der Index durch Auswahl der gewünschten Indexattribute definiert. Die übrigen Karteireiter zeigen die durch die Attributauswahl definierten SQL-Anweisungen für die Erzeugung der Indizes an. Wenn der Indextyp „Unbekannt“ gewählt ist, wird auf den Karteireitern für die unterstützten Datenbanken das Feld „SQL-Statement“ editierbar und die SQL-Anweisung zur Erzeugung des gewünschten Indizes kann direkt unter Verwendung von datenbankspezifischen Befehlen eingegeben werden.
3.3.1 Karteireiter „Indexattribute“
Der Karteireiter besteht aus einer Liste. Die Liste „Indexattribute“ nimmt die Felder auf, aus denen der Index bestehen soll. Die Reihenfolge der Felder von oben nach unten bestimmt auch die Reihenfolge der Felder im resultierenden Index. Über die Listenaktion „Indexattribute hinzufügen/entfernen“ öffnet sich ein Dialog mit der Liste aller Tabellenspalten. Über die Checkbox werden die Spalten ausgewählt, die als Indexattribute verwendet werden sollen.
Folgende Aktionen können in der Liste „Indexattribute“ ausgeführt werden:
Aktion | Erläuterung |
Indexattribute hinzufügen/entfernen | Öffnet einen Dialog mit einer Liste der Tabellenspalten. Über die Checkboxen der Zeilen können Indexattribute aufgenommen bzw. wieder entfernt werden. |
Feld an letzte Stelle verschieben | Wenn eine Zeile in der Liste markiert ist, dann wird diese an die letzte Position verschoben. |
Feld im Index eine Position nach unten verschieben. | Wenn eine Zeile in der Liste markiert ist, dann wird diese um eine Position nach unten verschoben.
Ist die Zeile schon an letzter Stelle, so verbleibt sie auf der Position. |
Feld im Index eine Position nach oben verschieben. | Wenn eine Zeile in der Liste markiert ist, dann wird diese um eine Position nach oben verschoben.
Ist die Zeile schon an erster Stelle, verbleibt sie auf der Position. |
Feld an erste Stelle verschieben | Wenn eine Zeile in der Liste markiert ist, dann wird diese an die erste Position verschoben. |
Sortierreihenfolge verändern. | Ändert die Sortierreihenfolge des gewählten Attributes. Wenn die Sortierreihenfolge absteigend war, dann ist sie nach der Aktion aufsteigend. |
3.3.2 Dialog „Attribute des Business Objects“ und „Attribute des dynamischen Business Objects“
Beide Dialoge sind gleich aufgebaut. Die Dialoge besitzen eine Liste aller Tabellenspalten des gewählten Business Objects bzw. dynamischen Business Objects. Jede Zeile besitzt eine Checkbox über die die jeweiligen Tabellenspalten als Indexattribut in den Index aufgenommen werden kann. Wenn der Haken an eine Checkbox gesetzt wurde, wird nach der der Auswahl der Schaltfläche „Übernehmen“ der Dialog geschlossen und die gewählten Tabellenspalten in die Liste der Indexattribute angefügt.
Die Liste enthält folgende Spalten:
Spalte | Erläuterung |
Attributname | Name des Attributes des Business Objects bzw. dynamischen Business Objects. |
Spalte | Name der betreffenden Tabellenspalte |
Label | Label des Attributs. Da es Attribute geben kann, welche nicht an der Oberfläche angezeigt werden, kann der Eintrag leer sein. |
Primitiver Typ | Primitiver Datentyp des Attributs. |
3.3.3 Datenbankspezifische Karteireiter
Für jede von Comarch ERP Enterprise unterstütze Datenbank gibt es einen Karteireiter. Diese Karteireiter besitzen jeweils nur ein Feld für das SQL-Statement.
Wenn der Indextyp „Standard“ gewählt ist, dann sind die Felder nicht editierbar und zeigen das SQL-Statement an, welches über die Liste im ersten Karteireiter definiert wurde. Bei der Auswahl des Indextyps „Unbekannt“ werden die Felder editierbar und es können datenbankspezifische Befehle zum Anlegen von Indizes verwendet werden. Wenn zuvor in dem ersten Karteireiter schon Felder in den Index aufgenommen wurden, dann wird die Liste der Indexattribute gelöscht.
Die zuvor generierte SQL-Anweisung bleibt bestehen und kann als Vorlage verwendet werden. Da keine Überprüfung der vom Benutzer eingegebenen SQL-Anweisung in der Anwendung erfolgt, können Fehler in der Schreibweise der Felder vermieden werden, wenn zuvor die gewünschten Attribute in die Liste der Attribute aufgenommen wurden und danach der Indextyp „Unbekannt“ gewählt wird.
3.3.4 Karteireiter „Alle Indizes“
Dieser Karteireiter enthält eine Liste die alle vorhandenen Indizes auf der Tabelle eines Business Objects bzw. dynamischen Business Objects anzeigt. Über die Schaltfläche „Aktualisieren“ in dem Kopfbereich der Liste wird die Liste gefüllt. Dazu muss in der Ansicht „Business Objects“ im Feld Business Objects das entsprechende Business Object ausgewählt sein, für deren Tabelle die vorhandenen Indizes angezeigt werden sollen. In der Ansicht „Dynamische Business Objects“ muss im Feld „Tabelle“ eine Tabelle ausgewählt sein. Die Liste hat folgende Spalten:
Spalte | Erläuterung |
Indexname | Name des Index der ausgewählten Tabelle. |
Indexattribute | Liste aller Attribute des Indexes. |
4 Anwendungsbezogene Aktion: Alle Indizes im Status „Vorbereitet“ erzeugen
Über die Schaltfläche in der Standardsymbolleiste wird die Hintergrundanwendung „Indizes erzeugen“ gestartet. Diese erstellt von allen individuellen Indizes im Status „Vorbereitet“ die Indizes auf den jeweiligen Tabellen. War die Generierung erfolgreich, wird der Status auf „Erfolgreich“ gesetzt. Im Fehlerfall wird der Status auf „Fehlgeschlagen“ gesetzt.
5 Customizing
Für die Anwendung „Individuelle Indizes“ sind in der Anwendung „Customizing“ keine Einstellungen festzulegen.
6 Business Entitys
Für die Anwendung „Individuelle Indizes“ ist das nachfolgende Business Entity relevant, das Sie beispielsweise verwenden, um
- Berechtigungen zu vergeben,
- Aktivitätsdefinitionen einzurichten oder
- Daten zu importieren oder zu exportieren.
Indexerweiterung
com.cisag.sys.dictionary.obj.TableIndexExtension
7 Berechtigungen
Berechtigungen können sowohl mithilfe der Berechtigungsrollen als auch durch die Zuordnung einer Organisation vergeben werden. Das Berechtigungskonzept können Sie in der Technischen Dokumentation „Berechtigungen“ nachlesen.
7.1 Spezielle Fähigkeiten
Für die Anwendung „Individuelle Indizes“ bestehen keine speziellen Fähigkeiten.
7.2 Organisations-Zuordnungen
Für die Anwendung „Individuelle Indizes“ ist eine Organisations-Zuordnung nicht erforderlich.
7.3 Besonderheiten
Für die Anwendung „Individuelle Indizes“ bestehen keine Besonderheiten.
7.4 Berechtigungen für Geschäftspartner
Die Anwendung „Individuelle Indizes“ ist für Geschäftspartner nicht freigegeben.
8 Vorgehensweisen
8.1 Erzeugen eines individuellen Indizes vom Typ „Standard“
- Starten Sie die Anwendung „Individuelle Indizes“.
- Wählen Sie in der Standardsymbolleiste „Neu“.
- Geben Sie im Feld „Indexname“ den Namen des Index ein.
- Wählen Sie im Feld „Datenbank“ die gewünschte Datenbank, auf der sich die Tabelle befindet und für die Sie einen Index anlegen möchten.
- Geben Sie im Feld „Business Object“ das gewünschte Business Object ein, für dessen Tabelle sie einen Index anlegen möchten.
- Wählen Sie im Karteireiter „Indexattribute“ im Kopfbereich der Liste „Indexattribute hinzufügen/entfernen“.
- Es öffnet sich der Dialog „Attribute des Business Objects“.
- Wählen Sie in der Liste die Checkboxen der Attribute an, die in den Index aufnehmen wollen.
- Wählen Sie die Schaltfläche „Übernehmen“.
- Die ausgewählten Felder werden in die Liste „Aktueller Index“ aufgenommen.
- Bringen Sie mithilfe der Listenaktionen der Liste „Aktueller Index“ die Attribute in die gewünschte Reihenfolge.
- Wenn gewünscht, ändern Sie mit der Listenaktion „Sortierreihenfolge ändern“ die Sortierreihenfolge der jeweiligen Indexattribute.
- Drücken Sie in der Standard-Symbolleiste den Button „Speichern“.
Hinweis:
Es werden beim Speichern nur die Metadaten in die Datenbank geschrieben, die Indizes werden noch nicht erzeugt. Das Erzeugen geschieht über die anwendungsbezogene Aktion „Alle Indizes im Status „Vorbereitet“ erzeugen“.
8.2 Erzeugen eines individuellen Indizes vom Typ „Unbekannt“
- Starten Sie die Anwendung „Individuelle Indizes“.
- Wählen Sie in der Standardsymbolleiste den Button „Neu“.
- Geben Sie im Feld Indexname den Namen des Index ein.
- Wählen Sie im Feld „Datenbank“ die gewünschte Datenbank, auf der sich die Tabelle befindet, für die Sie einen Index anlegen möchten.
- Geben Sie im Feld „Business Object“ das gewünschte Business Object ein, für dessen Tabelle sie einen Index anlegen möchten.
- Wählen Sie im Feld „Indextyp“ „Unbekannt“.
- Die Felder „SQL-Statement“ der Datenbank-Karteireiter werden editierbar.
- Wählen Sie den Karteireiter ihrer Datenbank.
- Geben Sie im Feld „SQL-Statement“ die SQL-Anweisung ein.
- Wählen Sie in der Standard-Symbolleiste den Button „Speichern“.
Hinweis:
Es werden beim Speichern nur die Metadaten in die Datenbank geschrieben, die Indizes werden noch nicht erzeugt. Das Erzeugen geschieht über die anwendungsbezogene Aktion „Alle Indizes im Status „Vorbereitet“ erzeugen“.