Ansicht
Dokumentation

CL_CHR_MAIN - Merkmale: Verarbeiten, Prüfen, Sichern

CL_CHR_MAIN - Merkmale: Verarbeiten, Prüfen, Sichern

BAL_S_LOG - Application Log: Log header data   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Die Klasse deckt die gesamte Verarbeitungslogik der Merkmalverwaltung ab (Ausnahmen s.u.).

Als Schlüssel kann überall wahlweise der Merkmalname oder der interne Schlüssel verwendet werden. Passend zum Format der Daten bietet es sich an, den externen Schlüssel zu nutzen.

Das Formatder Schnittstellen und der kompletten Verarbeitung lehnt sich an das API-Format an (aber z. B. bei Werten Zähler statt VALUE_BEF). Alle Feldnamen sind identisch zur Benennung im API-Format. Bei den Basisdaten sind Prüftabelle und Prüffunktionsbaustein zusätzlich aufgenommen worden, bei den Werten sind die expliziten Angaben zu Nachfolger und übergeordnetem Wert durch Zähler ersetzt. Der Zähler gibt die Reihenfolge der Werte an und muß fortlaufend vergeben werden (d. h. Zähler = SY-TABIX). In dieser Klasse wird bis auf wenige Ausnahmen keine Änderungsdienst-Logik durchgeführt. Sowohl das Lesen der Daten als auch das Erzeugen der relevanten Datensätze im internen Format wird in eigenen Funktionsgruppen durchgeführt.

Zu einem Merkmal kann es nur eine Instanz geben (ggf. mit Get_Instance besorgen). D. h. insbesondere, daß ein Merkmal immer nur mit einer Gültigkeit bzw. einem Änderungsauftrag bearbeitet werden kann.

Die ändernden Methoden führen alle relevanten Prüfungen durch. Im Fehlerfall werden Meldungen in den Systemvariablen angelegt (bzw. ausgegeben, wenn die Ausnahmen nicht abgefangen werden), außerdem wird im API-/ BAPI-Fall eine Meldung ins Protokoll (Objekt CAPI, Unterobjekt CAPI_LOG) geschrieben.

Neben Create, Change und Delete gibt es auch Methoden, die Teile eines Merkmals ändern (Bezeichnungen, Werte, Wertebezeichnungen); diese Methoden beginnen mit SET und REMOVE. Wenn diese Methoden verwendet werden, brauchen keine Prüfungen zu unveränderten Datenbereichen durchgeführt zu werden. Es gibt aber keine Methode zum Ändern der Basisdaten; eine solche Änderung hat zur Folge, daß auch geprüft werden muß, ob die Werte noch zu dem neuen Format passen, so daß auch die Change-Methode verwendet werden kann.

Langtext und Beziehungswissen können nur über eigene Methoden bearbeitet werden, nicht aber über Create oder Change.

Beim Beziehungswissen muß unbedingt beachtet werden, daß die zu Grunde liegenden Funktionsbausteine nicht objektorientiert sind. Es gibt daher die folgenden Einschränkungen:

  • Die Init-Methode ruft auch das Init-API des Beziehungswissens. Dieses API nimmt alle Änderungen zurück, also auch die Änderungen an anderen Merkmalinstanzen!
  • Alle Merkmalinstanzen, die Beziehungswissen ändern, müssen mit der selben Änderungsnummer (bzw. alle ohne Änderungsnummer) bearbeitet werden! Andernfalls werden die Beziehungswissen-APIs neu initialisiert (s. o.).

Die Prüfmethodensind öffentlich, damit ist es auch möglich, nur die Prüfmethoden zu verwenden und vor dem Speichern einmal die Change-Methode zu rufen. Wegen Abhängigkeiten zwischen den Prüfungen werden beim Aufruf einer ändernden Methode alle Prüfungen nochmals durchgeführt; i. A. ist es daher sinnvoller, statt der Prüfmethode sofort die ändernde Methode zu rufen.

Alle vorgenommenen Änderungenwerden mit Methode Post gespeichert bzw. mit Methode Init zurückgenommen.

Überschreibung wird vollständig unterstützt. Dazu muß lediglich dem Constructor der Name der Klasse und ihre Klassenart mitgegeben werden. Über die vorhandenen Ereignisse können erzeugte bzw. zurückgenommene Überschreibungsschlüssel verarbeitet werden. Alle Angaben zu Feldern, die in der Überschreibung nicht geändert werden dürfen, werden ignoriert; damit brauchen einer Überschreibung nur die interessierenden Felder übergeben werden, alles übrige wird aus dem Originalmerkmal abgeleitet.

Nicht unterstützte Funktionalität der alten Merkmalverwaltung:

  • Überschriften werden auch in der alten Merkmalverwaltung nicht mehr unterstützt. Wenn ein Merkmal Überschriften besitzt und mit der neuen Merkmalverwaltung geändert wird, gehen die Überschriften verloren.
  • Datenformate ADT, BOOL (nur von IPC genutzt)
  • Eingabe numerischer Schablonen (zur Entfernung der Tausendertrenner); über eigene Methoden können Tausendertrenner gesetzt oder entfernt werden, so dass dies keine chete Einschränkung bedeutet.
  • Konvertierungsexit, wenn Merkmal weder Objektmerkmal ist noch Prüftabelle besitzt.
  • Objektmerkmal zusammen mit zulässigen Werten
  • Wert SPACE
  • Prüfreport (durch Prüffunktionsbaustein ersetzbar).
  • Exotische Kennzeichen: Summierbar, Bilanzierbar, ATAME, ATWME, Einschränkbar, Eingabe erf. Konf., ATTEI, ATHIE, ATFGA, ATYAC, ATWSO, ATBSO, ATWRI, Auswahlmenge, Katalog, ATHKA, ATHKO, Toleranz, ATZUS, ATVPL.
  • Klassifizierung von Merkmal und Merkmalswert. Während die Merkmalsklassifizierung nur überflüssig ist, führt die Merkmalswertklassifizierung zu Problemen: OBJEK besteht aus ATINN (systemabhängig, also nicht verteilbar) und ATWRT (im benutzerspezifischen, nicht neutralen Format).

Beziehungen

Die Klasse CL_CHR_MAIN benutzt folgende Funktionsbausteine:

  • Die Funktionsbausteine der Funktionsgruppe CLSE werden für Datenbankzugriffe und Datenbankpufferung verwendet.
  • Die Verbuchung erfolgt wie bei der alten Merkmalverwaltung über Funtionsgruppe CTVB (BUS1088_DATABASE_UPDATE).
  • Alter Änderungsdienst, Beziehungswissen (zu den Problemen s. o.) und Langtext sind ebenfalls über Funktionsbausteine angeschlossen

Die Klasse CL_CHR_MAIN benutzt folgende weiteren Klassen:

  • CL_CHR_CONST enthält alle gebräuchlichen Konstanten der Merkmalverwaltung.
  • CL_CACL_CONTROL steuert, ob die Verarbeitung hell oder dunkel erfolgt, d. h. ob Meldungen ins Protokolll geschrieben werden und ob die Schablone in neutralem Format zu behandeln ist.
  • CL_CHR_CONVERSION stellt alle Konovertierungen zwischen internen Format und Verarbeitungsformat zur Verfügung.
  • CL_CACL_MESSAGE schreibt Meldungen ins Protokoll. Die Klasse kann nicht zum Ausgeben von Meldungen verwendet werden, da dies im OO-Umfeld Probleme bereitet.
  • CL_CHR_SERVICE stellt Dienste zur Verfügung, die nicht nur in der Verarbeitung, sondern auch von der Oberfläche benötigt werden, z. B. die Ermittlung von Formatangaben aus einem Tabellenfeld.
  • CL_CHR_STACK bietet die Möglichkeit, von einer Oberfläche aus eine n-stufige 'Rückgängig'-Funktionalität zu realisieren.
  • CL_CHR_TEMPLATE bietet die gesamte Schablonenprüfung und -erzeugung an.
  • CL_CACL_VALUEFORMAT ist der Rahmen zur Anbindung der Funktionsgruppe CTCV mit Instanziierung und Pufferung. Diese Klasse bildet die Wertprüfung und -konvertierung ab.
  • CL_CLS_MAIN ist die OO-Klasse der Klassenverwaltung, sie wird im Rahmen der Überschreibung eingesetzt.

Diese Klassen lösen folgende Funktionsgruppen ab:

  • CTMV: Merkmalverarbeitung.
  • CTUT: Puffer zwischen CLSE und CTMV, verschiedene Prüfungen (z. B. Verwendung).
  • CALO, STAP: Protokoll für ALE/ API/ BAPI.

Beispiel

Hinweise

Weiterführende Informationen






ABAP Short Reference   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9573 Date: 20240426 Time: 032429     sap01-206 ( 167 ms )