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/189463533/866-version-1-modificationdate-1738736141004-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/189463533/864-version-1-modificationdate-1738736141003-api-v2.png


(1) 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) Hier kann ein Muster für den RFC-Namen angegeben werden. Beispiel: *RFC* steht für alle RFC-Namen, die RFC enthalten. Hier kann aber auch der vollständige Name des RFCs, dessen Struktur importiert werden soll, explizit eingegeben werden.

(3) Liste der gefundenen RFCs.

(4) 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.