SapCheckArfcsState

Gruppe

Zeitgesteuerte eigene Klassen

Konfiguration

Pfad zu einer Properties-Datei in Feld Konfigurationsdatei .

Beschreibung


Die Klasse kann in einem Cronjob regelmäßig aufgerufen werden, um eventuell nicht erfolgreiche IDoc-Sendeversuche aus einem angeschlossenen SAP-System zu erkennen. Der Fall kann eintreten, wenn die Registrierung des Request-Servers scheitert, nicht erfolgt oder verloren gegangen ist.

Dazu wird die Tabelle ARFCSSTATE über einen RFC-Aufruf gelesen, falls ausgehende Verbindungen noch funktionieren (was eine Voraussetzung ist). Hinweis: Durch Konfiguration eines Kontrollpunktes kann der Fall abgefangen werden, dass die Klasse nicht arbeiten kann.

Parameter


Parameter

Beschreibung

sap.alias

(Pflicht) Name des in ./etc/sap.xml konfigurierten SAP-Aliases, der verwendet werden soll.

sap.timeout

(optional) Die Timeout-Zeit in Millisekunden. Default: 60000.

sap.destination

(optional) Name der in SM59 definierten Destination (Typ T). SQL-Platzhalter sind erlaubt, z. B. %. Default: %LOB%

sap.function

(optional) Die Funktion, die zum Senden der IDocs aufgerufen wird. Default: IDOC_INBOUND_ASYNCHRONOUS

sap.host

(optional) Die SID des sendenden SAP-Systems. Per Default werden alle SIDs akzeptiert. Wichtiger Hinweis: Es werden nur Einträge gezeigt, die jünger als 3*24=72 Stunden sind.

sap.fields

(optional) Steuert, welche Datenbankfelder der Tabelle ARFCSSTATE in die XML-Response übernommen werden. Hinweis: Selbstverständlich müssen die im Property angegebenen Feldnamen in der Tabelle ARFCSSTATE existieren, andernfalls wird ein Fehler erzeugt.

Wenn das Property fehlt, wird die unten beschriebene Struktur von ITEM erzeugt.

Wenn das Property existiert und der Wert mit + beginnt, werden die entsprechenden Felder am Ende hinzugefügt. Beispiel: sap.fields=+ARFCMSG+ARFCSTATE

Wenn das Property existiert und nicht mit + beginnt, wird die Feldliste durch die im Property definierte ersetzt.

Beispiel-Datei


sap.alias=myalias
sap.destination=LOBSTER TEST

XML-Response


Folgend eine beispielhafte Standard-Response-Datei (Encoding UTF-8). Hinweis: Siehe auch Parameter sap.fields oben.

Der Aufruf erzeugt eine XML-Datei, die mindestens das Root-Element ITEMS mit dem Attribut count enthält. Die maximale Anzahl der ITEM-Elemente ist festgelegt mit 500. Eine Sortierung ist nicht möglich.

Wenn keine pending IDocs im SAP existieren, hat count den Wert 0. Mit Hilfe von ARFCUZEIT und ARFCDATUM kann im Profil entschieden werden, ob z. B. eine Alarm-E-Mail versendet wird, falls es Einträge gibt (also count>0). Hinweis: Die Auswertung in dem abfragenden Profil sollte erst Warnungen erzeugen für Einträge, die nicht zu jung sind.


<ITEMS count="1">
<ITEM nr="1">
<ARFCIPID>C0A8DF63</ARFCIPID>
<ARFCPID>0230</ARFCPID>
<ARFCTIME>60900160</ARFCTIME>
<ARFCTIDCNT>0090</ARFCTIDCNT>
<ARFCDEST>LOBSTER TEST</ARFCDEST>
<ARFCFNAM>IDOC_INBOUND_ASYNCHRONOUS</ARFCFNAM>
<ARFCUZEIT>183043</ARFCUZEIT>
<ARFCDATUM>20210503</ARFCDATUM>
<ARFCUSER>LOBSTER</ARFCUSER>
<ARFCTCODE>WE19</ARFCTCODE>
<ARFCRHOST>QWT</ARFCRHOST>
</ITEM>
<OPTIONS />
</ITEMS>


Schema-Datei: sap.xsd (Siehe auch Abschnitt XML to XSD (to Structure))

Beispiel-Profil: Profile-TEST_SAP_ARFCSSTATE.pak

Hinweis: Die XSD-Datei/die Quellstruktur für die XML-Response muss angepasst werden, wenn der Parameter sap.fields verwendet wird.

Monitoring-REST-Call für fehlerhafte IDoc-Sendeversuche aus SAP


Die oben beschriebene Response-XML (ebenfalls im Encoding UTF-8) ist auch über einen REST-CALL abrufbar. Zur Authentifizierung siehe Abschnitt Monitoring-Webseite (allgemein).


http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/saparfcs

Konfigurationsdatei


Die Konfiguration wird als Properties-Datei unter ./conf/saparfcs.cnf erwartet (Parameter wie für die Klasse SapCheckArfcsState).

Um in einem Szenario, in dem mehrere SAP-Systeme verbunden sind, verschiedene Aliases abfragen zu können, ist es möglich im HTTP-Request den Parameter config zu verwenden. Dadurch kann die verwendete Properties-Datei gewechselt werden. Allerdings betrifft dieses Feature nur die Properties, die mit sap. beginnen, nicht die Sicherheitskonfiguration client (siehe unten). Für die Verwendung des Parameters config müssen mehrere Konfigurationsdateien unter ./conf vorbereitet werden, deren Name mit SM58_ beginnt und mit .conf endet. Dazwischen wird der mit Parameter config übergebene Teil gesetzt. Wird unter dem so gebildeten Dateinamen keine Datei gefunden, wird das Fehlen der Pflicht-Property sap.alias gemeldet. Beispiel: Mit http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/saparfcs?config=abc wird die Konfigurationsdatei ./conf/SM58_abc.conf gesetzt. Hinweis: Der Wert von config darf auch den Verzeichnistrenner / enthalten. Damit ist es möglich, die Konfigurationsdateien z. B. in einem Unterverzeichnis SM58_... zusammenzufassen.

Sicherheitskonfiguration


Es stehen zwei Parameter in der Konfigurationsdatei zur Verfügung, um den Zugriff nur von bestimmten IP-Adressen zu erlauben oder nur über HTTPS.

client.ip

(optional) Zugriff erlaubt von diesen IPs. Default: localhost . Mit Präfix regex: können reguläre Ausdrücke verwendet werden (siehe Beispiel unten).

client.secure

(optional) false , falls HTTP erlaubt ist. true , falls nur HTTPS erlaubt ist. Default: true .


Beispiel:


client.ip = regex:127\\..*;regex:192\\.168\\.21[367]\\..*;0:0:0:0:0:0:0:1
client.secure=false

Parameter in URL


Die Parameter können auch im Request angegeben werden, z. B. http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/saparfcs?sap.alias=myalias&sap.destination=LOBSTER_TEST. Dabei werden jene Request-Parameter ignoriert, die bereits durch die Konfigurationsdatei definiert sind. Die Konfigurationsdatei hat also Vorrang.

Die Timeout-Zeit kann allerdings nur mit der Property sap.timeout in einer Konfigurationsdatei definiert werden und nicht durch einen Request-Parameter.

Eventuelle Sonderzeichen, wie das Prozent-Zeichen oder Leerzeichen innerhalb des Wertes für sap.destination müssen URL-kodiert werden, z. B. Prozent als %25 oder Leerzeichen als %20.

Siehe auch