Beschreibung
Rufen Sie diese Klasse regelmäßig in einem Cronjob auf. So erkennen Sie erfolglose IDoc-Sendeversuche aus einem angeschlossenen SAP-System. Das kann passieren, wenn die Registrierung des Request-Servers fehlschlägt, ausbleibt oder verloren geht.
Dazu liest die Klasse die Tabelle ARFCSSTATE über einen RFC-Aufruf. Dafür müssen ausgehende Verbindungen funktionieren. Das ist eine Voraussetzung.
HINWEIS: Konfigurieren Sie einen Kontrollpunkt. So fangen Sie ab, dass die Klasse nicht arbeiten kann.
Konfiguration: Geben Sie den Pfad zu einer Properties-Datei im Feld Konfigurationsdatei an.
Parameter
Parameter | Beschreibung |
|---|---|
sap.alias | (Pflicht) Name des SAP-Aliases aus |
sap.timeout | (optional) Timeout-Zeit in Millisekunden. Standardwert: |
sap.destination | (optional) Name der in |
sap.function | (optional) Funktion, die das System zum Senden der IDocs aufruft. Standardwert: |
sap.host | (optional) SID des sendenden SAP-Systems. Standardmäßig akzeptiert das System alle SIDs. HINWEIS: Das System zeigt nur Einträge, die jünger als 3*24=72 Stunden sind. |
sap.fields | (optional) Steuert, welche Datenbankfelder der Tabelle Fehlt das Property, erzeugt das System die unten beschriebene Struktur von Beginnt der Wert mit Beginnt der Wert nicht mit |
Beispiel-Datei
sap.alias=myalias
sap.destination=LOBSTER TESTXML-Response
Es folgt eine beispielhafte Standard-Response-Datei (Encoding UTF-8).
HINWEIS: Siehe auch den Parameter sap.fields oben.
Der Aufruf erzeugt eine XML-Datei mit mindestens dem Root-Element ITEMS und dem Attribut count. Die maximale Anzahl der ITEM-Elemente beträgt 500. Eine Sortierung ist nicht möglich.
Wenn keine ausstehenden IDocs im SAP existieren, hat count den Wert 0. Mit den Feldern ARFCUZEIT und ARFCDATUM können Sie im Profil entscheiden, ob eine Alarm-E-Mail versendet wird. Das gilt zum Beispiel, wenn Einträge vorhanden sind (also count>0).
HINWEIS: Erzeugen Sie im abfragenden Profil erst Warnungen für Einträge, die nicht mehr 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: Passen Sie die XSD-Datei bzw. die Quellstruktur für die XML-Response an, wenn Sie den Parameter sap.fields verwenden.
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 den Abschnitt Monitoring-Webseite (allgemein).
|
Konfigurationsdatei
Das System erwartet die Konfiguration als Properties-Datei unter ./conf/saparfcs.cnf (Parameter wie für die Klasse SapCheckArfcsState).
Verbinden Sie mehrere SAP-Systeme, können Sie verschiedene Aliases abfragen. Verwenden Sie dazu im HTTP-Request den Parameter config. So wechseln Sie die verwendete Properties-Datei.
Dieses Feature betrifft nur Properties, die mit sap. beginnen. Es betrifft nicht die Sicherheitskonfiguration client (siehe unten).
Bereiten Sie für den Parameter config mehrere Konfigurationsdateien unter ./conf vor. Der Dateiname beginnt mit SM58_ und endet mit .conf. Dazwischen setzen Sie den mit dem Parameter config übergebenen Teil.
Findet das System unter diesem Dateinamen keine Datei, meldet es das Fehlen der Pflicht-Property sap.alias.
Beispiel: http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/saparfcs?config=abc setzt die Konfigurationsdatei ./conf/SM58_abc.conf.
HINWEIS: Der Wert von config darf auch den Verzeichnistrenner / enthalten. So können Sie die Konfigurationsdateien zum Beispiel in einem Unterverzeichnis SM58_... zusammenfassen.
Sicherheitskonfiguration
Die Konfigurationsdatei bietet zwei Parameter für den Zugriff. Damit erlauben Sie nur bestimmte IP-Adressen oder nur HTTPS.
Parameter | Beschreibung |
|---|---|
client.ip | (optional) Erlaubt den Zugriff von diesen IPs. Standardwert: |
client.secure | (optional) |
Beispiel:
client.ip = regex:127\\..*;regex:192\\.168\\.21[367]\\..*;0:0:0:0:0:0:0:1
client.secure=falseParameter in URL
Sie können die Parameter auch im Request angeben, zum Beispiel: http(s)://<IP/URL Integration Server>:<Port>/dw/monitor/v1/saparfcs?sap.alias=myalias&sap.destination=LOBSTER_TEST. Die Konfigurationsdatei hat dabei Vorrang. Das System ignoriert Request-Parameter, die die Konfigurationsdatei bereits definiert.
Definieren Sie die Timeout-Zeit dagegen nur mit der Property sap.timeout in einer Konfigurationsdatei, nicht über einen Request-Parameter.
Kodieren Sie Sonderzeichen im Wert für sap.destination URL-konform, etwa das Prozentzeichen oder Leerzeichen. Zum Beispiel: Prozent als %25 oder Leerzeichen als %20.