
Tricks zu Varianten im SAP
Varianten werden in vielen Unternehmen sehr gerne in den SAP Systemen genutzt. Sie sind sehr praktisch, da sie einen schnellen Zugriff bei häufig gleichen Selektionen ermöglichen und auch für Jobs bei der Hintergrundverarbeitung genutzt werden können.
In diesem Beitrag sollen ein paar Tricks im Bezug auf Varianten erläutert werden, die vielleicht für den ein oder anderen Anwendungsfall hilfreich sind.
Ersteller einer Variante ermitteln
Im konkreten Fall hatten Kollegen das Problem, dass sie eine Variante für eine Transaktion anpassen mussten, aber nicht wussten von dem diese mit welchem genauen Hintergrund erstellt wurde. Da Varianten auch in Jobs genutzt werden, kann sich eine Änderung eventuell schwer auf weitere Prozesse im System auswirken. In der Oberfläche der Transaktion wird bei den Varianten nicht direkt angezeigt wer diese angelegt hat.
Diese Information findet man allerdings über die Tabelle VARID (Variantenkatalog). Dazu ermittelt man in der entsprechenden Transaktion über „System -> Status“ den Reportname und geht danach in die Transaktion SE16N. Dort ruft man die Tabelle VARID auf und gibt den Reportnamen ein.

Bei der Ausgabe sieht man alle Varianten für den Report und kann dort auch den Ersteller (1) und den letzten Änderer (2) finden.

Inhalt der Variante eines Jobs anzeigen
Auch ein Fall der ab und zu mal auftritt: Welche Selektionsdaten wurden eigentlich für einen Job genutzt? Gerade wenn das Ergebnis nicht den Erwartungen entspricht stellt sich natürlich die Frage, ob die Selektion denn korrekt war. Bei statischen Varianten ist das kein Problem, da kann man einfach die Variante im Selektionsbild anzeigen lassen. Bei einigen Fällen werden aber Inhalte der Varianten dynamisch Berechnet (z.B. Datumsangaben) oder es werden temporäre Varianten (beginnend mit einem „&“) angelegt, zum Beispiel wenn ein Report aufgrund der langen Laufzeit im Hintergrund ausgeführt wird.
Um sich die Selektionsbedingungen anzusehen muss in der Transaktion SM37 der Job ausgewählt werden. Dann wird im Job zu den „Steps“ gewechselt. Dort markiert man den entsprechenden Job (einfach einmal in die Zeile klicken) und geht anschließend über „Springen -> Variante“ in eine Übersicht der Selektionskriterien der bei der Ausführung genutzten Variante.

Dort sieht man dann alle Felder mit den entsprechenden Inhalten. Dort kann man gut nachvollziehen, ob die Selektion korrekt war oder ob sich an dieser Stelle eventuell ein Fehler eingeschlichen hat. Gerade bei der dynamischen Berechnung eines Datums kann das schon einmal vorkommen, z.B. bei einem Monatswechsel.

Sperre bei einer Variante entfernen
Diesen Teil habe ich bereits in diesem Blogbeitrag einmal erklärt, daher hier nur eine kurze Erläuterung.
Um Änderungen an Varianten zu verhindern kann man diese „schützen“. Dadurch kann sie nur durch die Person geändert werden, die den Schutz gesetzt hat. Um diesen nun als Administrator zu entfernen muss man den Report „RSVARENT“ verwenden. Dort nutzt man dann den Reportname der gewünschten Transaktion und die entsprechende Variante.

Verwendung von Varianten in Jobs ermitteln
Wenn ein Report oder eine Variante geändert wird sollte man gegebenenfalls auch die entsprechenden Jobs prüfen. In der Transaktion SM37 ist es möglich sich alle Jobs zu einem bestimmten Report anzeigen zu lassen. Dort kann man sich dann die Steps anzeigen lassen um zu prüfen, welche Variante genutzt wird. Sollte es allerdings sehr viele Jobs und Steps geben, dann kann man das auch über die Tabelleneinträge zu den Steps herausfinden. Diese werden in der Tabelle TBTCP „Step-Uebersicht eines Batch-Jobs“ gespeichert. Dort kann man schön nach den Varianten und den Reports suchen wie der folgende Screenshot zeigt.

Der Vorteil der Tabelle ist, dass man diese auch in eigenen Entwicklungen nutzen kann.
Varianten zwischen Reports kopieren
Eine Funktion die auch einmal nützlich sein und etwas Zeit ersparen kann. Gerade wenn man einen Report aus dem Standard in den Kundennamensraum kopiert um einige Anpassungen daran durchzuführen kann diese Funktion nützlich sein. Bestehen im Originalreport, beziehungsweise der Quelle Varianten die vielleicht auch später noch geändert wurden, so muss man die Änderungen nicht alle manuell auf den neune Report übertragen. Man kann dazu den Funktionsbaustein RS_COPY_SELECTION_SETS nutzen (Aufruf über die Transaktion SE37). Dort wird einfach der Quell- sowie der Zielreport eingegeben und die Daten werden anschließend kopiert.

Das waren einige kleine Tipps zum Thema Varianten. Welche Themen beschäftigen Sie noch und was sind Ihre besten Tipps zu diesem Thema?
Hallo SAP-Guy,
wir haben eine ganze Menge an Varianten und es stellt sich die Frage, ob diese eigentlich noch verwendet werden.
Gibt es eine Auswertung über die letzte Verwendung einer Variante?
BG
Hallo Robert,
du könntest nach dem Report und der Variante in der Tabelle TBTCP suchen. Bei einer großen Menge wäre es ggf. nützlich einen Report zu schreiben, der dies automatisch macht und alle Reports mit Variante meldet, die seit z.B. X Monaten nicht mehr genutzt wurde.
Hilft dir das weiter?
Gruß
Hallo SAP-Guy,
mir stellt sich gerade die Frage, ob man ein einer Vielzahl von Varianten durch eine „Massenänderung“ einen Parameter ändern kann – ich würde gerne für das GJ einen Eintrag in der TVARVC machen – dazu müßte ich aber alle Varianten überarbeiten – gibt es hier eine Möglichkeit, die Varianten anzupassen? Danke für deine Mühe & viele Grüße – Rainer
Hallo Rainer,
kennst du bereits den Funktionsbaustein RS_CHANGE_CREATED_VARIANT? Mit diesem solltest du Varianten anpassen können.
Die entsprechenden Werte könntest du mit dem Funktionsbaustein RS_VARIANT_VALUES_TECH_DATA auslesen.
Gruß
SAP-Guy