Ansicht
Dokumentation

Neuerungen zu Matchcodes ( RELNBC_DB_30A_MATCHCODES )

Neuerungen zu Matchcodes ( RELNBC_DB_30A_MATCHCODES )

PERFORM Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Kurztext

Neuerungen zu Matchcodes

Beschreibung

Transparente Matchcodes

Mit Version 3.0A sind die meisten SAP-Matchcodes auf die transparente Realisierungstechnik umgestellt. Das bedeutet, daß die Matchcode-Daten nicht mehr in einer zusätzlichen Tabelle gehalten, sondern über einen Datenbank-View zugänglich gemacht werden. Bei transparenten Matchcodes entfällt damit auch der Matchcode-Datenaufbau mittels des Programms SAPMACO.

Bei der Aktivierung einer transparenten Matchcode-Id (gekennzeichnet durch Aktualisierungsart 'I') wird überprüft, ob für diese Id ein passender Datenbankindex existiert. Ein solcher Index ist in aller Regel erforderlich, um die Matchcode-Selektion zu unterstützen. Falls kein entsprechender Index existiert, kann es zu erheblichen Performance-Problemen bei der Matchcode-Selektion kommen.

Die Prüfung geht davon aus, daß das erste Feld in der Matchcode-Definition (bei mandantenabhängigen Matchcodes das erste Feld nach dem Mandantenfeld) das für diesen Matchcode relevante Suchfeld ist, d.h., daß dieses Feld bei der Matchcode-Suche vom Benutzer durch die Eingabe eines Selektionswertes eingeschränkt wird. Als passender Index wird deshalb ein Index angesehen, der das relevante Matchcode-Suchfeld (eventuell nach einem Mandantenfeld) enthält.

Falls kein solcher passender Datenbankindex existiert, wird bei der Aktivierung der Matchcode-Id eine entsprechende Warnung ausgegeben. Für das weitere Vorgehen werden zwei Fälle unterschieden:

  • Falls der Matchcode-View auf der Datenbank (unter Berücksichtigung der Selektionsbedingung) weniger als 1000 Datensätze enthält, ist das Anlegen eines Index in der Regel nicht notwendig.
  • Falls deutlich mehr als 1000 Sätze im Matchcode-View auf der Datenbank enthalten sind, sollten Sie in der Regel einen Index anlegen.

In einem Index zur Unterstützung der Matchcode-Selektion sollten an erster Stelle die Felder stehen, über die mit Gleichheit gesucht wird (Mandant, Sprache oder - allgemeiner gesprochen - alle Felder für die das Get-Parameter Kennzeichen, d.h. das Flag GP auf dem Screen Matchcode-Id pflegen (Felder) gesetzt ist).

Der Index sollte also folgenden Aufbau haben:

  • Mandantenfeld
  • Felder, für die das Get-Parameter Kennzeichen gesetzt ist (speziell dann, wenn solche Felder auch im Primärschlüssel enthalten sind)
  • Feld, über das gesucht wird

Dieser Indexaufbau stellt jedoch nicht in allen Fällen sicher, daß der angelegte Index auch vom unterliegenden Datenbanksystem zur Datenselektion verwendet wird. Welcher Index konkret verwendet wird, hängt vom Optimizer des Datenbanksystems ab. Sie müssen also sicherstellen, daß der von Ihnen angelegte Sekundärindex besser ist als der standardmäßig angelegte Primärindex der entsprechenden Tabelle.

Sie können wie folgt überprüfen, ob der von Ihnen angelegte Index zur Unterstützung der Matchcode-Selektion verwendet wird:

  1. Eröffnen Sie einen zweiten Modus und wählen Sie System -> Hilfsmittel -> Trace SQL
  2. Betätigen Sie Trace on.
  3. Machen Sie im ersten Modus eine Sucheingabe und schicken Sie diese ab.
  4. Betätigen Sie im zweiten Modus Trace off und anschließend List trace.
  5. Suchen Sie in der angezeigten Liste nach Statements in denen der Matchcode-View M_ verwendet wird. Lassen Sie sich mit Explain SQL weitere Informationen zu diesen Statements anzeigen. Sie erfahren dort, welcher Index verwendet wurde.

Deaktivieren von Matchcode-Ids

In Anwendungen werden standardmäßig viele Matchcode-Ids angelegt, die aber in einigen Bereichen nur selten genutzt werden. Diese unnötigen Ids belasten unter Umständen das System.

Die Funktion Deaktivieren im Menü MC-Id des Bildes Matchcode-Id pflegen (Eigenschaften) erlaubt es, diese Belastung zu reduzieren. Im Gegensatz zum Löschen bleibt beim Deaktivieren die Definition der Id im ABAP/4 Dictionary erhalten. Wird die Id später erneut benötigt, kann sie einfach erneut aktiviert werden.

Deaktivieren kann nur für aktive Matchcode-Ids ausgeführt werden. Bevor eine Matchcode-Id deaktiviert werden kann, müssen die zur Id gehörigen Objekte auf der Datenbank gelöscht werden. Das bedeutet für transparente Matchcodes das Löschen des Views auf der Datenbank. Für nicht-transparente Matchcodes müssen vor der Deaktivierung zuerst die zugehörigen Matchcode Daten mittels des Programms SAPMACO (bzw. über Hilfsmittel -> Matchcode Daten -> Löschen in der Transaktion SE11) gelöscht werden.

Beachten Sie bei Matchcode-Ids der Aktualisierungsart S, daß die Matchcode-Sätze einer deaktiven Id nicht automatisch an Änderungen der Daten angepaßt werden. Nach dem erneuten Aktivieren müssen die Matchcode-Sätze mit Hilfe des Matchcode-Utilities neu aufgebaut werden.

Beachten Sie, daß deaktive Matchcode-Ids bei der F4-Hilfe nicht zur Auswahl angeboten werden.

Hinweis:

Deaktivierte Matchcode-Ids werden beim Put wieder aktiviert. Das Deaktivieren ist also eine reine Customizingfunktion. Sie müssen deaktivierte Matchcode-Ids daher nach einem Put erneut deaktivieren.

Einfluß auf den Datenbestand im Fehlerfall

Soft-/Hardwarevoraussetzungen

Besonderheiten bei der Installation

Auswirkungen auf die Systemverwaltung

Auswirkungen auf das Customizing

Auswirkungen auf Batch-Input

Änderungen an der Oberfläche

Änderungen in der Vorgehensweise

Aktionen zum Beheben von Fehlern am Datenbestand

Abhängige Funktionen

Planungen

Weitere Hinweise






General Data in Customer Master   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7177 Date: 20240523 Time: 154135     sap01-206 ( 130 ms )