Konvertierungsroutine CONVERSION EXIT NAME INPUT und CONVERSION EXIT NAME OUTPUT

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

In SAP gibt es ca. 2000 Konvertierungsroutinen. Man kann auch eigene Konvertierungsroutinen anlegen und nutzen. Der Name der Konvertierungsroutine hat maximal 5 Zeichen.

In aller Regel werden die Konvertierungsroutinen bei Domänen auf dem Reiter "Definition" im Feld "Konvert.-Routine" eingetragen und damit wird die Konvertierungsroutine automatisch durchlaufen, wenn ein Tabellenfeld auf das entsprechene Datenelement/Domäne typisiert.

Zu einer Konvertierungsroutine-/Exit gibt es immer 2 Funktionsbausteine.

CONVERSION_EXIT_<NAME>_INPUT 

und

CONVERSION_EXIT_<NAME>_OUTPUT

Man sollte die SAP-Hilfe zu den Konvertierungsroutinen lesen, wenn man sich mit diesem Thema näher beschäftigt. Die Arbeitsweise der Konvertierungsroutinen ist nicht intuitiv.

Eintrag Konvertierungsroutine in Domäne

  • Für eine Domäne kann eine Konvertierungsroutine im Feld "Konv.-Routine" eingetragen sein. <NAME> steht hier für den Namen der Konvertierungsroutine. Die Konvertierungsroutinen sind als Funktionsbausteine realisiert.
  • In diesem Beispiel steht die Konvertierungsroutine ALPHA.

Alpha1.jpg

Suche nach Konvertierungsroutinen

  • Die Suche nach "conversion_exit*" in der Transaktion SE37 zeigt alle Konvertierungsfunktionsbausteine an. Hier 1951 Treffer.

Konvertierungsroutine6.jpg


Man könnte z. B. nun nach "Sprach" suchen, um alle Konvertierungsbausteine betreffend Sprachkonvertierungen zu finden.

Konvertierungsroutine7.jpg


Konvertierungsroutine8.jpg

Hier findet er z. B. die interessanten Funktionsbausteine

  • CONVERSION_EXIT_ISOLA_INPUT
  • CONVERSION_EXIT_ISOLA_OUTPUT

Parameter Funktionsbausteine Konvertierungsroutinen

  • Die Parameter der Funktionsbausteine zu den Konvertierungsroutinen sind immer gleich.
  • Es gibt einen Importparameter INPUT und einen Exportparameter OUTPUT beim Funktionsbaustein CONVERSION_EXIT_<NAME>_INPUT und genauso beim korrespondierenden Funktionsbaustein CONVERSION_EXIT_<NAME>_OUTPUT.
  • Hier am Beispiel der beiden Funktionsbausteine CONVERSION_EXIT_ALPHA_INPUT und CONVERSION_EXIT_ALPHA_OUTPUT.

Siehe: Alpha-Konvertierung

Funktionsbaustein CONVERSION_EXIT_ALPHA_INPUT.

Konvertierungsroutine10.jpg


Konvertierungsroutine11.jpg


Funktionsbaustein CONVERSION_EXIT_ALPHA_OUTPUT.

Konvertierungsroutine12.jpg


Konvertierungsroutine13.jpg

Beispiele Konvertierungsroutinen

  • einem CHAR-Feld, welches auf der Datenbank mit führenden Nullen abgelegt ist, soll ohne führende Nullen angezeigt werden.
  • die Sprache ist gewöhnlich in einem Feld der Länge 1 auf der Datenbank gespeichert, wird aber in der Regel in Anzeigefeldern mit einem zweistelligen Wert angezeigt.

Konvertierungsroutine CUNIT

Auf der Datenbank ist die Mengenheit (Domäne MEINS) anders als die Mengenheit, die in anderen Sprachen dem User angezeigt wird. Dafür verantwortlich ist die Konvertierungsroutine CUNIT.

KonvertierungCUNIT1.jpg


KonvertierungCUNIT2.jpg


KonvertierungCUNIT3.jpg


Der Funktionsbaustein CONVERSION_EXIT_CUNIT_OUTPUT gibt für den Wert der Mengenheit auf der Datenbank und eine Sprache den Outputwert der Mengeneinheit, z. B. PC (Piece) statt ST (Stück).

KonvertierungCUNIT4.jpg


KonvertierungCUNIT5.jpg


KonvertierungCUNIT6.jpg


KonvertierungCUNIT7.jpg


KonvertierungCUNIT8.jpg

Konvertierungsroutine ALPHA

Die Konvertierungsroutine ALPHA ist wahrscheinlich die bekannteste Konvertierungsroutine in SAP.

Hier konvertiert der Funktionsbaustein CONVERSION_EXIT_ALPHA_INPUT ein CHAR-Feld mit einer Nummer ohne führende Nullen in ein CHAR-Feld mit führenden Nullen. Im Dynpro werden beim Ereignis PAI (Process-After-Input) die Ziffern nach rechts geschoben und links mit Nullen aufgefüllt, z.B. '1' --> '00000001'.

Umgekehrt konvertiert der Funktionsbaustein CONVERSION_EXIT_ALPHA_OUTPUT ein CHAR-Feld mit führenden Nullen in ein Feld, wo die führenden Nullen nicht ausgegeben werden.

Beim Feldtransport vor der Bildausgabe oder bei WRITE auf die Liste läuft genau die umgekehrte Konvertierung ab. '00000001' --> '1'.

Siehe: Alpha-Konvertierung

Alpha1.jpg

Alpha2.jpg

Alpha3.jpg

Konvertierungsroutine ISOLA (bei einem Sprachfeld)

Das Feld NAST-SPRAS hat die Länge 1 und verweist auf das Datenelement NA_SPRAS.

Konvertierungsroutine1.jpg


Das Datenelement typisiert auf die Domäne SPRAS.

Konvertierungsroutine2.jpg


Das Datenelement SPRAS hat im Feld "Konv.-Routine" die Konvertierungsroutine ISOLA.

Konvertierungsroutine3.jpg


Ein Doppelklick auf den Namen der Konvertierungsroutine öffnet ein Fenster, in dem die Namen der Funktionsbausteine aufgeführt sind, die die Konvertierung durchführen. Hier konvertiert z. B. der Funktionsbaustein CONVERSION_EXIT_ISOLA_INPUT den einstelligen Sprachwert in einen zweistelligen Sprachwert, und der Funktionsbaustein CONVERSION_EXIT_ISOLA_OUTPUT den zweistelligen Sprachwert in einen einstelligen Sprachwert.

Konvertierungsroutine4.jpg


Die Auswirkung der Konvertierungsroutine sieht man in der Transaktion SE16/SE16N, wenn man die Tabelle NAST aufruft. Das Sprachkennzeichen wird in einem zweistelligen Feld dargestellt, obwohl es auf der Datenbank nur einstellig abgelegt ist.

Konvertierungsroutine5.jpg

Konvertierungsroutine5.jpg

Konvertierungsroutine MATN1

  • Die Konvertierungsroutine MATNR1 fügt führende Nullen beim Material hinzu bis zu einer Länge von 18 Zeichen, obwohl das Datenelement MATNR 40 Zeichen hat. Das Datenelement MATNR, bzw. die Domäne hat die Konvertierungsroutine MATN1.

Konvertierungsroutine15.jpg


Beim Test des Funktionsbausteins CONVERSION_EXIT_MATN1_INPUT sieht man den Output bei einer Eingabe von einem Material, wie bis zu einer Länge von 18 Zeichen führende Nullen hinzugefügt werden.

Konvertierungsroutine14.jpg


Im Coding

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
  EXPORTING
    input        = ls_itab-matnr
  IMPORTING
    output       = ls_itab-matnr
  EXCEPTIONS
    length_error = 1
    OTHERS       = 2.

IF sy-subrc <> 0.
  MESSAGE i532(0u) WITH 'Fehler bei CONVERSION_EXIT_MATN1_INPUT bei'
                        ls_itab-matnr.
ENDIF.

Eigene Konvertierungsroutinen

  • Es können auch eigene Konvertierungsroutinen angelegt werden. Dazu kopiert man z. B. die Funktionsbaustein CONVERSION_EXIT_ALPHA_INPUT und CONVERSION_EXIT_ALPHA_OUTPUT und ersetzt ALPHA durch ein 5stelliges Kürzel, was bisher noch nicht existiert. Die Funktionsbausteine müssen in eine Funktionsgruppe im Kundennamensraum.
  • Das Coding in den Funktionsbausteinen wird abhängig von der eigenen Anwendung ersetzt, aber der Eingaparameter und Ausgabeparameter muss sowohl Namen als auch vom Typ CLIKE gleich bleiben.

Web-Links

Literatur