Zweck der Systemtabelle INDX

Alle Fragen rund um Basisthemen
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Zweck der Systemtabelle INDX

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
Hallo allerseits,

im Grunde kann ich es kurz machen, denn meine Frage lautet: Welchen Zweck erfüllt die Tabelle INDX bzw. deren Tabelleninhalt?

Problembeschreibung:
In Tabelle INDX sind zum Gebiet "BO" (Feld RELID) zu einigen wenigen Benutzern im Rahmen der Bearbeitung von PSCD-Genehmigungsworkflows (alles kundeneigene Entwicklungen) in den vergangenen Jahren teils mehrere tausend Einträge erzeugt worden. Das führt dazu, dass nun nach EhP7 Upgrade incl. Unicode Konvertierung recht lange Laufzeiten bei der Bearbeitung von Workitems entstehen (vorher ca. 3 Sekunden, nun ca. 30 Sekunden; bei mehreren Hundert Bearbeitungsfällen täglich kommt das schon was zusammen). Das brachte ein ST12 Trace zum Vorschein. Die hohe Anzahl der erzeugten INDX-Einträge schiebe ich auf die Art und Weise der Workitem-Bearbeitung zurück: und zwar machten sich die Workflow-Genehmiger die Mehrfachbearbeitung von Workitems zu Nutze. Nur bei den Benutzern, die diese Bearbeitungsweise nutzten, wurden die hohe Anzahl an Einträgen erzeugt, alle anderen Benutzer haben lediglich einen artgleichen Eintrag in der Tabelle (RELID = 'BO', SRTFD = 'BOR<user>'). Im Testsystem habe ich für einen dieser Benutzer die Einträge aus der Tabelle INDX gelöscht und die Performance war wieder hergestellt. Der Benutzer konnte den Workflow ohne Probleme zu Ende bringen. Kann es irgendwelche Nebeneffekte geben, wenn die genannten INDX-Einträge (RELID = 'BO') zu dem User gelöscht werden?
Aufgrund der Brisanz des Themas werde ich sicherlich auch eine SAP-Meldung aufmachen müssen.

Gruß,
Frank

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Zweck der Systemtabelle INDX

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
In Tabelle INDX können unstrukturierte Daten mit EXPORT TO DATABASE unter einer ID gespeichert werden.
Du kannst also ganze interne Tabellen, Strukturen und auch komplexe Datenstrukturen einfach persistieren und einfach wieder lesen.
So wie es sich anhört, scheinen das Workflow-Container zu sein, die dort gespeichert werden.
Evtl. hat es sich aber auch ein Programmierer einfach gemacht und Daten, die mühsam aus Workflow-container gelesen und aus Tabellen nachgelesen wurden, in die INDX gespeichert.
Normalerweise nimmt man dann aber einen Z-Bereich und nicht "BO".

Re: Zweck der Systemtabelle INDX

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
Danke für die Erläuterungen, Enno, wenn ich mich nicht irre. :wink:

Die Workflows wurden zwar nicht von mir entwickelt, sondern vom damaligen Dienstleister, aber da ich diese im Nachhinein mehr oder weniger administriere und auch sämtliche verwendeten Kundenobjekte (Aufgaben und SWO1-Objekte) mehr oder weniger kenne, kann ich versichern, dass die Tabelle INDX nicht aus kundeneigenem Coding direkt angesprochen wird, was ja auch deine Aussage mit dem Z-Bereich, der bei uns nicht existiert, unterstreicht.

Was halt in der Vergangenheit aufgefallen ist und leider ungelöst blieb, ist, dass im Rahmen der Workflow-Genehmigung Langläufer erzeugt wurden, die nur auf Betriebssystemebene beendet werden konnten (der Grund für diese Langläufer ist unklar). Diese Langläufer entstanden immer nur bei Mehrfachbearbeitung und in der SM50 war ersichtlich, dass der Prozess unendlich lange sequentiell auf die INDX zugriff. Die SAP wollte da keinen Support leisten, da es sich um kundeneigene Workflows handelte. Verstanden hatte ich das damals nicht, aber machen konnte ich auch nichts. Wie auch immer, jetzt hat uns das Problem auf andere Art und Weise eingeholt und muss aufgrund der langen Bearbeitungszeiten gelöst werden.

Ich habe bereits eine Meldung aufgemacht. Die zentrale Frage ist halt, ob die Einträge einfach aus der INDX gelöscht werden können? Deinen Aussagen zur Folge und denen einiger Hinweise sollte das wahrscheinlich kein Problem darstellen. Ich warte mal was da kommt.

Gruß,
Frank

Re: Zweck der Systemtabelle INDX

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
ewx hat geschrieben:In Tabelle INDX können unstrukturierte Daten mit EXPORT TO DATABASE unter einer ID gespeichert werden.
Du kannst also ganze interne Tabellen, Strukturen und auch komplexe Datenstrukturen einfach persistieren und einfach wieder lesen.
(....)
Normalerweise nimmt man dann aber einen Z-Bereich und nicht "BO".
Ersteres gilt für alle Tabellen dieser Art (wir haben selbst solche Tabellen angelegt, um unstrukturierte Daten zu persistieren (das Wort muss ich mir merken, früher haben wir einfach "speichern" gesagt LOL).

Wenn "BO" verwendet wurde, würde ich meinen, dass die SAP dort etwas gespeichert hat und davon die Finger lassen.

An sich ist die INDX aber relativ tolerant, was Datenmengen angeht, ich habe schon ganze Migrationsdaten-Bundles darin gespeichert (ohne sie später zu löschen).
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Zweck der Systemtabelle INDX

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
Dass es sich dabei um Daten der SAP handelt, hatte ich mir gedacht, da ja, wie schon oben geschrieben, an keiner Stelle des Kunden-WFs in die INDX geschrieben wird. Eine Analyse des Problems hatte man mir damals aber nur zugesichert, wenn gleiches Problem mit Standard-Workflows auftritt. Das finde ich ein wenig unpassend, da ja ausschließlich Standard-Entwicklungswerkzeuge genutzt wurden und diese INDX-Einträge zur Laufzeit irgendwo im Hintergrund erzeugt werden/wurden. Fakt ist, dass sich die Vorgehensweise bei multipler Genehmigung mit dem EhP7-Upgrade geändert hat. Musste man vorher nur das erste Workitem manuell bearbeiten und alle folgenden wurden maschinell "dunkel" durchgebucht, ist es jetzt so, dass der Genehmiger in jedes einzelne Workitem geführt wird. Wir vermuten, dass im Rahmen der vorherigen "dunklen" Abarbeitung der Workitems die zur Laufzeit erzeugten INDX-Einträge nicht wieder gelöscht wurden. Ein ST12-Trace des Genehmigungsvorgangs zeigt, dass andere SAP-eigene Einträge in der INDX erst geschrieben und dann später im laufen Prozess wieder gelöscht werden.

Bisher habe ich noch keine Antwort seitens der SAP erhalten.

Re: Zweck der Systemtabelle INDX

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
ralf.wenzel hat geschrieben: Ersteres gilt für alle Tabellen dieser Art (wir haben selbst solche Tabellen angelegt, um unstrukturierte Daten zu persistieren (das Wort muss ich mir merken, früher haben wir einfach "speichern" gesagt LOL).
Ich kenne nicht viele Fremdwörter. Wenn ich dann mal eins anbringen kann, verspüre ich den Drang, dies auch tun zu müssen... :]

Re: Zweck der Systemtabelle INDX

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
ralf.wenzel hat geschrieben:...
Ersteres gilt für alle Tabellen dieser Art (wir haben selbst solche Tabellen angelegt, um unstrukturierte Daten zu persistieren (das Wort muss ich mir merken, früher haben wir einfach "speichern" gesagt LOL).
2 Anmerkungen zu dem Zitat - vielleicht ein wenig off topic :)
  • zu persistieren: Duden hat geschrieben:
    • (veraltet) auf etwas beharren, bestehen
    • (Medizin) bestehen bleiben, fortdauern (von krankhaften Zuständen)
  • Es fehlt die schließende Klammer!
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zweck der Systemtabelle INDX

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Ralf, Stefan:
Einigen wir uns auf das in der IT gebräuchliche, stets in der Fachliteratur verwendete und über jeden Zweifel erhabene "Wegschreiben". :D

Frank: Bin gespannt, wie eine Persistenzschicht nach einer von Ralf durchgeführten Migration, was bei deinem Problem heraus kommt!

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1566
Views
Sinn und Zweck der Tabelle AGR_AGRS2
von zzcpak » 18.10.2007 14:53 • Verfasst in Basis
7
Antw.
2732
Views
Systemtabelle SCREEN an Klasse übergeben
von ralf.wenzel » 08.02.2014 15:16 • Verfasst in ABAP® Core
6
Antw.
3087
Views
XD01 - Daten aus INDX Clustertabelle vorbelegen!!!
von guggi » 09.06.2005 12:11 • Verfasst in Dialogprogrammierung

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 511
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2146
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8742