Laden einer RFC-Struktur aus SAP-Repository

Hier sind die Verfahren für die Quell- und Zielstruktur unterschiedlich.

Für die Quellstruktur


Die Quellstruktur wird in Phase 1 eines Profils mit einem zeitgesteuerten Eingangsagenten des Typs SAP erzeugt.

Beim Import einer RFC-Struktur in die Quellstruktur wird die Export-Struktur des RFCs importiert, also dessen Ausgangs-Parameter.

Die folgende Abbildung zeigt die Quellstruktur, die für den Funktionsbaustein RFC_READ_TABLE über Button Struktur erzeugen erzeugt wurde. Zur Benennung von Knoten und Feldern der Quellstruktur siehe Abschnitt Namenskonvention bei SAP-RFC unten.


images/download/thumbnails/201680168/866-version-1-modificationdate-1748314473828-api-v2.png

Für die Zielstruktur


Eine RFC-Zielstruktur wird in Phase 3 eines Profils erzeugt. Siehe entsprechenden Punkt in Abschnitt Vorlagen aus SAP laden.

Beim Import einer RFC-Struktur in die Zielstruktur wird die Import-Struktur des RFCs importiert, also dessen Eingangs-Parameter.

Die folgende Abbildung zeigt den Dialog für den Import einer RFC-Struktur aus dem Repository eines via SAP-Service verbundenen SAP-Systems in die Zielstruktur.


images/download/attachments/201680168/864-version-2-modificationdate-1748330704263-api-v2.png


(1) SAP Alias: Alias, der angibt, aus welchem SAP-System die RFC-Struktur importiert werden soll. Zur Auswahl stehen alle Aliase, die im SAP-Service konfiguriert wurden (siehe Konfigurationsdatei ./etc/sap.xml).

(2) Struktur analysieren, Variablen mit übernehmen: Siehe hierzu die entsprechenden Punkte in Abschnitt Laden einer IDoc-Struktur aus einem internen Template.

Namenskonvention bei SAP-RFC


Die Namenskonvention für die Knoten- und Feldnamen ist in der Quellstruktur-Abbildung oben erkennbar.

Die Knoten und Felder der Struktur erhalten das Namenspräfix SAP_Table_ für Tabellen und SAP_Fld_ für die zugehörigen Felder.

Wenn das RFC-Feld z. B. XYZ heißt, entspricht diesem in der Struktur ein Feld mit dem Namen SAP_Fld_XYZ.

Wenn dieses Feld sich in einem Knoten mit Namen SAP_Fields befindet, wird es als IMPORT-Feld des RFCs betrachtet. Wenn es in einem Knoten SAP_Struct_ABC ist, wird es als Komponente XYZ der IMPORT-Struktur ABC (in ABAP ABC-XYZ) übergeben. Wenn das Feld sich in einem Knoten SAP_Table_STUVW befindet, wird es als Komponente XYZ der Tabelle STUVW übergeben.

Beim Importieren der Struktur online aus dem SAP-System werden die Namen der Felder und Knoten nach dieser Namenskonvention erzeugt.

Hinweis: Auch die Funktion call-sap-rfc(alias a,rfc b,[inMap c,timeout d,filter e,outList f,debug g,h,i]) verwendet diese Konvention.


Gelegentlich werden im RFC Feld-, Struktur- oder Tabellen-Namen mit einem Namensraum-Präfix verwendet. Solche Namen enthalten das Slash-Zeichen (/ ), das in Feld- und Knotennamen im Profil nicht erlaubt ist. Der Slash wird deshalb zum Unterstrich (_) gewandelt. Dadurch wird aber die Namenskonvention verletzt. In diesem Fall muss der RFC-Feldname in der Beschreibung des Feldes mit dem Präfix SAP: stehen, um die Beziehung zu dem Namen im RFC herzustellen.

Beim Import einer RFC-Struktur wird das Beschreibungsfeld entsprechend gefüllt, falls es ein Domänen-Name ist. Beispiel: Wenn der SAP-Name /XYZ0/ABC lautet, wird durch den Wert SAP:/XYZ0/ABC im Beschreibungsfeld der originale SAP-Name des Feldes hinterlegt.