Bereitstellen des RFCs (zweite Konfigurationsmöglichkeit)
Alternativ zur Methode beschrieben in Abschnitt Bereitstellen des RFCs (erste Konfigurationsmöglichkeit), gibt es eine zweite Konfigurationsmöglichkeit für den Lobster-RFC. Dabei entfällt die Schnittstellendefinition in der XML-Datei, sowie der Parameter xmlFile in der Listener-Konfiguration. Stattdessen wird der Parameter copyFromPeer verwendet.
<
Set
name
=
"copyFromPeer"
>true</
Set
>
Diese zweite Konfigurationsart kann auch für RFC-Aufrufe mit Response in Verbindung mit folgenden weiteren Parametern genutzt werden. Hinweis: Wenn useResponse=true, muss auch synchronCall=true verwendet werden, weil sonst der Aufrufer gar nicht auf die Response warten würde.
<
Set
name
=
"useResponse"
>true</
Set
>
<
Set
name
=
"synchronCall"
>true</
Set
>
In diesem Fall (RFC sendet eine Response zurück) kann zusätzlich mit dem folgenden Parameter erreicht werden, dass die TABLE-Parameter gelöscht werden, bevor im Antwortweg des Profils die Response erzeugt wird. Andernfalls werden die Tabellenzeilen aus dem Request auch in der Response wieder zurück gesendet. Das ist in der Regel nicht gewünscht.
<
Set
name
=
"clearTablesForResponse"
>true</
Set
>
Beim Start des SapConnectionServices wird für den betreffenden Request-Listener bzw. Lobster-RFC die Konfiguration der Schnittstelle nicht aus einer XML-Datei gelesen und geladen, sondern aus dem Repository des SAP-Systems. Im SAP-System muss daher ein RFC im Repository aktiv sein, der den gleichen Namen hat, der in Parameter functionName definiert ist. Die Schnittstelle des RFCs wird dadurch das Spiegelbild des gleichnamigen RFCs im SAP-System. Der RFC im SAP-System muss nicht vollständig implementiert sein. Es reicht die Schnittstelle.
Diese Methode erlaubt also die Schnittstelle aus der SAP-Sicht zu spezifizieren und dabei den Aufwand zur Entwicklung der Schnittstellen-XML-Datei zu sparen.
Einschränkung
Diese Art der Konfiguration erfordert zwingend eine hohe Verfügbarkeit des SAP-Systems. Zum Zeitpunkt des Starts des SapConnectionServices muss das SAP-System erreicht werden können.
Zudem ist die konzeptionelle Arbeitsweise erforderlich, dass zuerst die Schnittstelle spezifiziert wird, danach die Implementierung in beiden Systemen erfolgt und die Schnittstelle nicht mehr verändert wird. Nachträgliche Änderungen in der Schnittstelle des RFCs innerhalb des SAP-Systems erfordern eine manuelle Anpassung des Profils, das den "spiegelbildlichen" Lobster-RFC implementiert. Nachträgliche Schnittstellenänderungen im SAP-System werden daher in der Regel zu Fehlern führen.
Response an SAP-System
Es ist zudem möglich eine Response zurück an das SAP-System zu schicken.
Dazu muss in Phase 6 die Klasse PassBackDataResponse verwendet werden.
Die Response (aufgebaut mit Zielstruktur und Integration Unit) muss dabei folgendes Format haben. Hinweis: Siehe Abschnitte Datei für Struktur analysieren und XMLNoTemplateUnit.
Beispiel (nur Felder)
<
RFC
name
=
"Y_IMP_TEST01"
>
<
OUTPUTPARAMS
>
<
FIELD
name
=
"E_RELT"
>S</
FIELD
>
<
FIELD
name
=
"E_MSG"
>Success</
FIELD
>
</
OUTPUTPARAMS
>
</
RFC
>
Beispiel (nur Tabellen)
<
RFC
name
=
"Y_IMP_TEST01"
>
<
TABLES
>
<
TABLE
name
=
"TABLENAME"
>
<
ROW
>
<
FIELD
name
=
"NAME1"
type
=
"CHAR"
length
=
"10"
>Hello</
FIELD
>
<
FIELD
name
=
"NAME2"
type
=
"CHAR"
length
=
"15"
>World</
FIELD
>
</
ROW
>
</
TABLE
>
<
TABLE
name
=
"TABLE2NAME"
>
<
ROW
>
<
FIELD
name
=
"NAME2"
type
=
"CHAR"
length
=
"20"
>Foo</
FIELD
>
</
ROW
>
</
TABLE
>
</
TABLES
>
</
RFC
>
Beispiel (beides)
<
RFC
name
=
"Y_IMP_TEST01"
>
<
OUTPUTPARAMS
>
<
FIELD
name
=
"E_RELT"
>S</
FIELD
>
<
FIELD
name
=
"E_MSG"
>Success</
FIELD
>
</
OUTPUTPARAMS
>
<
TABLES
>
<
TABLE
name
=
"TABLENAME"
>
<
ROW
>
<
FIELD
name
=
"NAME1"
type
=
"CHAR"
length
=
"10"
>Hello</
FIELD
>
<
FIELD
name
=
"NAME2"
type
=
"CHAR"
length
=
"15"
>World</
FIELD
>
</
ROW
>
</
TABLE
>
<
TABLE
name
=
"TABLE2NAME"
>
<
ROW
>
<
FIELD
name
=
"NAME2"
type
=
"CHAR"
length
=
"20"
>Foo</
FIELD
>
</
ROW
>
</
TABLE
>
</
TABLES
>
</
RFC
>