Ansicht
Dokumentation

USMD_DATA_TRANSFER_U - BAdI: Upload-Daten aufbereiten

USMD_DATA_TRANSFER_U - BAdI: Upload-Daten aufbereiten

PERFORM Short Reference   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Dieses Business Add-In (BAdI) wird in der Anwendungskomponente Stammdaten-Governance(CA-MDG) verwendet und zwar für den Upload von Stammdaten, sprachabhängigen Texten und Hierarchien in den Stammdaten-Governance-Hub.

Eine aktive Implementierung wird bei der Ausführung der Web-Dynpro-Anwendung Datei-Upload(USMD_FILE_UPLOAD) aufgerufen. Das BAdI besitzt folgende Instanzmethoden:

  • CONVERT
  • FINALIZE

Mit der Methode CONVERT kann eine Konvertierung von Feldwerten von einem externen Format in das interne SAP-Format durchgeführt werden. Dies ist nur dann sinnvoll, wenn der SAP-Konvertierungs-Exit bewusst nicht verwendet werden soll. Diese Konvertierung sollte auch nur dann erfolgen, wenn die Daten in einem von SAP nicht interpretierbaren Format angeliefert werden.

Die Methode wird einmal pro Zeile der Datei aufgerufen. Es wird die gesamte Zeile im eingelesenen externen Format zur Verfügung gestellt. Die Parameter der Methode haben folgende Bedeutung:

  • IO_MODEL_EXT ist eine Referenz auf die Metadaten des Datenmodells. Hier können beispielsweise die Feldeigenschaften ermittelt werden.
  • I_ENTITY gibt den Entitätstyp an, für den der Upload erfolgen soll.
  • IS_SETTINGS enthält die Einstellungen des Uploads. Hier kann ermittelt werden, ob ein Transfer von Stammdaten oder Hierarchien vorliegt.
  • IS_DATA enthält die zu konvertierenden Daten im externen Format. Diese können nur ausgelesen werden.
  • ITS_FIELD enthält die Felder in der Reihenfolge, in der sie in den Strukturen IS_DATA, ES_DATA und ES_DONE angeordnet sind.
  • ET_MESSAGE wird mit Fehlermeldungen gefüllt, falls die Konvertierung nicht möglich ist.
  • ES_DATA enthält den konvertierten Feldwert, falls eine Konvertierung vom externen in das SAP-Format im BAdI vorgenommen wird.
  • ES_DONE ist eine Liste mit Kennzeichen pro zu konvertierendes Feld. Falls die Konvertierung im BAdI vorgenommen wird, muss hier das Feld mit einem 'X' gefüllt werden.

Im Falle von Hierarchien enthalten die Strukturen IS_DATA, ES_DATA und ES_DONE die Unterstrukturen _HEADER, _PARENT, _CHILD und _HRYATTS. Falls für den Upload einer Hierarchie definiert wurde, dass ein Feld sich in der Kopfzeile befindet, dann ist dieses Feld in der Unterstruktur _HEADER angeordnet. Falls das Feld zum übergeordneten Knoten gehört, dann ist es in der Unterstruktur _PARENT zu finden. Analog wird der untergeordnete Knoten zur Unterstruktur _CHILD und die Kantenattribute zur Unterstruktur _HRYATTS zugeordnet. Die Beispielimplementierung der Methode CONVERT durch die Klasse CL_USMD_DATA_TRANSFER_UPL_BADI (Methode IF_EX_USMD_DATA_TRANSFER_UPL~CONVERT) zeigt, wie auf diese Strukturen zugegriffen werden kann. In der Beispielmethode wird eine Konvertierung durchgeführt, falls eine ALPHA-Konvertierung vorgesehen ist. Dabei wird automatisch auch das Kennzeichen in der Struktur ES_DONE gefüllt.

Die Struktur IS_DATA enthält im Feld USMD_LINENO auch die Zeilennummer. Diese Zeilennummer entspricht der Position des Datensatzes in der Upload-Datei. Die Zeilennummer kann in Fehlermeldungen verwendet werden.

Mit der Methode FINALIZE können die Daten, die bereits im internen SAP-Format vorliegen, nochmals abgeändert werden. Alle Datenzeilen werden hier auf einmal verarbeitet. Sie haben folgende Möglichkeiten:

  • Hinzufügen neuer Zeilen
  • Abändern einzelner Werte
  • Löschen einzelner Datenzeilen

Die Parameter der Methode haben folgende Bedeutung:

  • IO_MODEL_EXT ist eine Referenz auf die Metadaten des Datenmodells. Hier können beispielsweise die Feldeigenschaften oder der Name des Datenmodells ermittelt werden.
  • I_ENTITY gibt den Entitätstyp an, für den der Upload erfolgen soll.
  • IS_SETTINGS enthält die Einstellungen des Uploads. Hier kann ermittelt werden, ob ein Transfer von Stammdaten oder Hierarchien vorliegt.
  • ITS_FIELD enthält die Felder in der Reihenfolge, in der sie in den Strukturen IS_DATA, ES_DATA und ES_DONE angeordnet sind.
  • ET_MESSAGE wird mit Fehler- bzw. Informationsmeldungen gefüllt.
  • CT_DATA enthält die Daten im internen Format. CT_DATA ist eine Standard-Tabelle. Der Aufbau der einzelnen Datensätze entspricht dem Parameter IS_DATA der Methode CONVERT. Aus der Tabelle CT_DATA können Datensätze gelöscht, hinzugefügt oder geändert werden.

Falls Datensätze in CT_DATA hinzugefügt werden, sollte das Feld USMD_LINENO entweder auf den Initialwert gesetzt werden oder ein Wert so gewählt werden, der kenntlich macht, dass dieser Datensatz hinzugefügt wurde und nicht in der Datei enthalten war.

Im Standard ist keine BAdI-Implementierung aktiviert.

Das BAdI ist nicht filterabhängig.

Das BAdI ist nicht für Mehrfachverwendung vorgesehen.

Informationen über die Implementierung von BAdIs im Rahmen des Erweiterungskonzepts finden Sie in der SAP-Bibliothek von SAP NetWeaver unter BAdIs - Einbettung in das Enhancement Framework.

Die Klasse CL_USMD_DATA_TRANSFER_UPL_BADI stellt eine Beispielimplementierung dar. In der Instanzmethode CONVERT wird der Zugriff auf die Strukturen ES_DATA, ES_DONE und IS_DATA gezeigt. Aus Gründen der Performance sollte diese Beispielimplementierung jedoch nicht eingesetzt werden, da ein identisches Ergebnis auch direkt ohne BAdI erzielt wird.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7320 Date: 20240523 Time: 050328     sap01-206 ( 171 ms )