• Keine Ergebnisse gefunden

1 Fehlerbehebung und Support

1.2 Desktop Studio

Die folgenden Wissensdatenbankhinweise zu Desktop Studio sind verfügbar:

● Long waiting time when capturing a page using UI Automation – 2788781

● Unable to create Process Debug Manager component – 2781601

● „System.InvalidOperationException“ error when debugging a project in the Desktop Studio – 2833621

● Black screen when capturing a page using Intelligent RPA Desktop Studio with Chrome – 2842523

● Datei [...] form.pscm konnte nicht gefunden werden – 2849305 Schritte in Desktop Studio

● Schritte zum Abrufen einer Variable (Text) aus Factory – 2822776 (siehe dieses Thema auch im Entwicklerhandbuch)

● Schritte zum Abrufen einer Variablen (Anmeldeinformationen) aus Factory –2822500 (siehe dieses Thema auch im Entwicklerhandbuch)

● How to insert a picture in an email - 2864114

● How to use another Diff/Merge tool – 2867241

● Umbenennen eines Projekts – 2956757 Bewährte Geschäftsverfahren

● Bewährte Geschäftsverfahren für die Bildschirmsperre und nicht verbundene Virtual Desktop Infrastructure [Seite 9]

● Bewährte Geschäftsverfahren für PDF-Bibliothek [Seite 20]

● Bewährte Geschäftsverfahren für Web-Service-Aufrufe [Seite 21]

● Best Practices für den Umgang mit erheblichen Datenmengen bei der Scenario-Ausführung [Seite 31]

● Best Practices für CAPTCHAs [Seite 31]

● Best Practices für die Automatisierung von SAP-GUI-Bildern mit niedrigen Hierarchien [Seite 32]

● Best Practices für die Verwaltung von Dateien [Seite 34]

● Best Practices für die Verwaltung des Popups „Server ausgelastet“ [Seite 39]

1.2.1 Bewährte Geschäftsverfahren für die Bildschirmsperre und nicht verbundene Virtual Desktop Infrastructure

Das SAP Intelligent RPA-Tool erfordert in manchen Fällen, dass der Benutzer Applications mit untergeordneten Aktionen wie Mausklicks oder direkten Tastenanschlägen umgehen muss. Unter bestimmten Umständen können diese untergeordneten Aktionen zu Einschränkungen führen.

Dieses Verhalten beschränkt sich nicht auf die unbeaufsichtigte Ausführung, da vom Benutzer erwartet werden kann, dass er beaufsichtigte Scenarios auf seinem Rechner startet und sie arbeiten lässt, während der

Bildschirm gesperrt ist.

Context

Der Benutzer bestätigt, dass ein Job während der Implementierungs- und Testphasen ordnungsgemäß ausgeführt wird:

● Mit Debugger- und Testertool

● Durch Überwachung der Jobausführung in Echtzeit auf ihrem Rechner

Sobald sich der Agent jedoch in einer Virtual Desktop Infrastructure mit gesperrtem Bildschirm befindet, wird der Job nicht ordnungsgemäß ausgeführt und während einiger technischer Aktionen mitten in der

Automatisierung angehalten.

Dieses Problem tritt in folgenden Fällen auf:

● Der Bildschirm ist während der Ausführung eines Jobs auf dem Rechner des Benutzers gesperrt.

● In der Virtual Desktop Infrastructure ist eine Sitzung geöffnet, aber vom Benutzer geht keine Aktivität aus.

● Die Virtual Desktop Infrastructure wird nach ein paar Dutzend Minuten minimiert.

Ursache

Um bestimmte Automatisierungsaktionen wie Mausklicks und Abfolgen von Tastenanschlägen zu verarbeiten, benötigt der Benutzer eine geöffnete Sitzung, die verhindert, dass der Bildschirm während der Ausführung einer Automatisierung gesperrt wird. Die Verwendung einer physischen oder virtuellen Tastatur ist jedoch nicht erforderlich.

Dieses Verhalten ist charakteristisch für die Technologien und Applications, die innerhalb der Automatisierung manipuliert werden.

Diese Art von Problem lässt sich meistens auf Simulationen der Verwendung der Maus und Tastatur zurückzuführen:

● application.page.item.mouseClick();

● application.page.item.keystroke("text");

1.2.1.1 Ursachen

In folgenden Themen werden die Hauptursachen für die Bildschirmsperre und Einschränkungen der Virtual Desktop Infrastructure erläutert.

1.2.1.1.1 Mausklicks

Die Verwendung folgender simulierter Mausklickaktionen führt zu Einschränkungen:

● application.page.item.click(true)

● application.page.item.clickMouse(

● Alle ctx.mouse-Methoden

Um diese Art von Aktion zu identifizieren, prüfen Sie, ob der Cursor beim Ausführen der Klickaktion zur gewünschten Position geht.

1.2.1.1.2 Tastenanschläge

Die Verwendung folgender Tastenaktionen führt zu Einschränkungen:

● application.page.item.keyStroke(e.key.xxx)

● application.page.item.keyStroke("Test")

● ctx.keyStroke("Test")

Um zu prüfen, ob die Aktion mit einem gesperrten Bildschirm oder einer nicht verbundenen Virtual Desktop Infrastructure ausgeführt werden kann, können Sie folgende Abfolge von Tastenanschlägen senden:

ctx.wait(function(ev){

application.page.item.keystroke(“text”);

},10000);

Diese Abfolge von Tastenanschlägen erzeugt eine Verzögerung, während der Sie den Bildschirm manuell sperren oder die Sitzung trennen können.

1.2.1.1.3 UI-Automatisierung

Mit dem UIAutomation-Connector kann eine beliebige Desktop-Anwendung mit UIAutomation-Schnittstelle automatisiert werden. Wenn eine automatisierte Component auf eine übergeordnete Aktionsanforderung nicht reagiert, sendet der UIAutomation-Connector Mausklicks oder Tastenanschläge. In diesem Fall können simulierte Aktionen wie click() oder set() zu Einschränkungen führen.

Beispiel: Wenn Sie in Adobe Acrobat Reader mit der Abfolge application.page.item.click() anstelle der Abfolge application.page.item.clickMouse() auf das Menü Datei klicken, schlägt die Aktion fehl, wenn der Bildschirm gesperrt ist.

Dasselbe Verhalten kann auftreten, wenn Sie den Windows-Dateibrowser mit dem UIAutomation-Connector verwalten.

Gehen Sie wie folgt vor, um diese Art von Aktion zu identifizieren:

● Prüfen Sie, ob der Cursor beim Ausführen der Klickaktion zur gewünschten Position geht.

● Kombinieren Sie die Aktion mit einer Verzögerung, während der Sie den Bildschirm manuell sperren oder die Sitzung trennen können:

ctx.wait(function(ev){

application.page.item.click();

},10000);

1.2.1.1.4 Oberflächenautomatisierung mit OCR

Die Oberflächenautomatisierung ist auf Mausklicks und Tastenanschläge angewiesen, die einen Desktop mit nicht gesperrtem Bildschirm erfordern.

1.2.1.2 Problemlösung

In folgenden Themen werden bewährte Geschäftsverfahren vorgeschlagen, um die Bildschirmsperre und Einschränkungen der Virtual Desktop Infrastructure zu umgehen.

Activity „Entsperren“ verwenden [Seite 12]

Mausklick- und Tastenanschlagsaktionen verfolgen [Seite 13]

Automatisierung von Web-Applications [Seite 13]

Win32-Connector verwenden [Seite 17]

Bildschirm entsperrt lassen [Seite 19]

Verbindung zur Virtual Desktop Infrastructure aufrechterhalten [Seite 19]

Weitere funktionale Lösungen identifizieren [Seite 20]

1.2.1.2.1 Activity „Entsperren“ verwenden

Wenn Ihr Bot im unbeaufsichtigten Modus ausgeführt wird, können Sie die Activity Entsperren verwenden, um Probleme mit Mausklicks und Tastenfolgen zu lösen.

Hinweis

Für die SAP-GUI-Technologie ist die Activity (oder Funktion) Entsperren ensureUnlocked

für Abfolgen von Tastenanschlägen nicht erforderlich.

Sie können die Activity Entsperren in Desktop Studio hinzufügen oder die folgende Funktion verwenden:

ctx.workstation.ensureUnlocked();

Die Activity Entsperren entsperrt eine gesperrte Session und ermöglicht es Ihnen, während der Ausführung einer Automatisierung Mausklicks oder Tastenfolgen durchzuführen. Diese Activity sperrt die Sitzung zehn Sekunden nach der Aktion automatisch erneut.

Sie müssen das Kennwort der Sitzung wie folgt konfigurieren, um:

● die Sitzung automatisch und ohne Benutzereingriff zu öffnen, wenn Ihr Rechner startet.

● Entsperren Sie die Sitzung in wenigen Sekunden, wenn der Bot eine Automatisierung ausführt.

Sie können Ihre Anmeldeinformationen für Windows in Desktop Agent direkt sichern. Weitere Informationen über das Festlegen von Anmeldeinformationen in Desktop Agent erhalten Sie unter Windows-Kennwort in Desktop Agent festlegen.

Weitere Informationen dazu, wie Sie Windows-Anmeldeinformationen zum Starten eines Desktop Agent im unbeaufsichtigten Modus speichern, finden Sie im SAP-Hinweis 3010368 .

1.2.1.2.2 Mausklick- und Tastenanschlagsaktionen verfolgen

Um Probleme mit Mausklick- und Tastenanschlagsaktionen zu beheben, müssen Sie diese Aktionen verfolgen und identifizieren. Diese Aktionen wurden möglicherweise so in das Projekt implementiert, um komplizierten Quelltext oder eine falsche Item-Behandlung durch das Werkzeug zu vermeiden.

Wenn Sie folgende Tastenanschlagsaktion finden:

● ctx.keystroke / application.page.item.keystroke

können Sie sie durch ein simuliertes Ereignis ersetzen:

● application.page.item.set()

Wenn Sie folgende Klickaktion finden:

● ctx.mouse.click / application.page.item.clickMouse / click(true)

können Sie sie durch ein simuliertes Ereignis ersetzen:

● application.page.item.click()

1.2.1.2.3 Automatisierung von Web-Applications

Das Festlegen eines Werts mit der Standardmethode funktioniert möglicherweise nicht auf jeder Website, insbesondere nicht auf einer Website mit umfangreichem Framework (z.B. Bootstrap, Angular…).

Dieses Verhalten steht mit Folgendem im Zusammenhang:

● JavaScript-Events, die mit Items auf der Web-Page verknüpft sind

● Oberflächensteuerungen

● Eine komplexe Page-Struktur

Das folgende Beispiel zeigt einen Standardfall für eine Website mit umfangreichem Framework.

1. Wenn Sie einen Wert festlegen, erhält der Benutzer eine Tooltip-Liste als Eingabe in der Suchleiste

„Component Search“.

Auf der Page wird eine neue Meldung angezeigt, die angibt, welche Art von Suche durchgeführt und ob ein unbekannter Wert festgelegt wurde.

2. Der Benutzer legt folgendes simuliertes Event zum Festlegen fest:

IRPAComponent.pMain.oSearchBox.set("IRPA");

Dieses Event funktioniert aus folgenden Gründen nicht:

○ Es wird kein Tooltip angezeigt.

○ Es wird keine neue Meldung angezeigt.

3. Der Benutzer legt folgende simulierte Tastenanschläge fest:

IRPAComponent.pMain.activate();

IRPAComponent.pMain.activate();

IRPAComponent.pMain.oSearchBox.setFocus();

ctx.keyStroke("IRPA");

Hinweis

In einem Webbrowser wie Chrome ist eine doppelte Aktivierung und dann die Festlegung des Fokus auf das Item erforderlich, an welches eine Abfolge von Tastenanschlägen gesendet werden soll.

Um eine simulierte Abfolge von Tastenanschlägen zu vermeiden, sollte diese nicht direkt an das Item gesendet werden.

In der Folge wird ein Tooltip und eine Meldung angezeigt.

Diese Lösung kann auf entsperrte Bildschirme angewendet werden, aber nicht auf Rechner mit gesperrtem Bildschirm und einer nicht verbundenen Virtual Desktop Infrastructure. Bei einem gesperrten Bildschirm wird ctx.keystroke blockiert.

Eine weitere Möglichkeit, dieses Verhalten zu beheben, ist die Verwendung von Events, die mit dem Item verknüpft wurden:

IRPAComponent.pMain.oSearchBox.set("IRPA");

IRPAComponent.pMain.oSearchBox.trigger("input");

In der Folge wird der Tooltip und eine entsprechende Meldung angezeigt. Diese Lösung kann auf Rechnern mit gesperrtem Bildschirm und nicht verbundener Virtual Desktop Infrastructure angewendet werden, solange die Sitzung aktiv ist.

Für eine komplexere Web-Page kann es erforderlich sein, dass der Benutzer direkt im Browser arbeitet, indem er den Entwicklermodus verwendet, um eine Lösung zu finden.

Es ist beispielsweise möglich, ein bestimmtes Maus-Event auf der Page zu simulieren:

application.page.item.scriptItem( "dispatchEvent( new MouseEvent( 'mouseover', {'bubbles': true, 'cancelable': true}))");

Dies kann auch für ein Tastatur-Event durchgeführt werden, und zwar für Eingaben, die nur eine bestimmte Tasteneingabe erfordern.

1.2.1.2.4 Win32-Connector verwenden

Wenn Sie eine Application als Win32-Application erkennen, können Sie auch mit einem gesperrten Bildschirm und einer nicht verbundenen Virtual Desktop Infrastructure simulierte Aktionen senden.

Da der Win32-Connector die Architektur einer Application nicht vollständig exponiert, sind nicht alle Objekte zugänglich.

Beispiel zu Adobe Acrobat Reader:

• Zur Manipulation des Dateimenüs und Untermenüs werden Mausklicks mit der Methode click() verwendet.

• Mit derselben Application, die über den Win32-Connector erfasst wurde, können Sie dasselbe Menü auch mit einem gesperrten Bildschirm manipulieren.

Wenn der UIAutomation-Connector die einzige Option ist (z.B. 64-Bit-Application), ist die Option zur

Verwendung der Win32-Automatisierung für die UIAutomation-Objekte ab Version 1.0.8 von Desktop Studio verfügbar.

Diese Option ist nur für Items mit folgenden Klassennamen verfügbar:

• Button

application.page.item.click()

• Edit

application.page.item.set()

Im Abschnitt „Aufgenommene Daten“ muss jedes dieser Items auch die Aufnahmeeigenschaft hWnd haben, die sich von 0x0 unterscheidet.

1.2.1.2.5 Bildschirm entsperrt lassen

Ein gängiges bewährtes Geschäftsverfahren besteht darin, Ihre Umgebung so zu konfigurieren, dass der Bildschirm nicht gesperrt wird.

Dadurch können Mausklicks und Tastenanschläge an die Anwendung gesendet werden, ohne dass die Bildschirmsperre aktiviert wird.

1.2.1.2.6 Verbindung zur Virtual Desktop Infrastructure

aufrechterhalten

Wenn Sie eine Virtual Desktop Infrastructure verwenden und Mausklicks und Tastenanschläge erforderlich sind, haben Sie folgende Möglichkeiten:

● Konfigurieren Sie die Virtual Desktop Infrastructure, um zu verhindern, dass der Bildschirm gesperrt wird.

● Stellen Sie eine direkte Verbindung zu einer Virtual Desktop Infrastructure von einem lokalen Rechner aus her.

Möglicherweise verfügen Sie über ein Projekt, das diese Verbindung von einem lokalen Rechner aus startet.

1.2.1.2.7 Weitere funktionale Lösungen identifizieren

Wenn keine der zuvor vorgeschlagenen Lösungen Abhilfe schafft, versuchen Sie, eine funktionale

Behelfslösung zu finden. Eine andere Bildabfolge, ein anderer Button, auf den geklickt werden muss, oder eine andere Art, Ihr Formular zu validieren, kann auch funktionieren, ohne dass ein Mausklick oder ein

Tastenanschlag erforderlich ist.

Wenn keine der Behelfslösungen verwendet werden kann, kann dies möglicherweise für Ihr Projekt hinderlich sein.

Es ist wichtig, diese Einschränkungen frühzeitig in Ihrem PoC, Ihrem Design oder Ihrer Implementierung festzustellen. Dazu haben Sie folgende Möglichkeiten:

● Aktion verwenden + Verzögerung + manuelle Bildschirmsperre

● Regelmäßige Tests für eine nicht verbundene Virtual Desktop Infrastructure oder auf einem Rechner mit gesperrtem Bildschirm ausführen

1.2.2 Bewährte Geschäftsverfahren für PDF-Bibliothek

Die PDF-Bibliothek ermöglicht die Extraktion von Daten aus PDF-Dokumenten, deren Text durchsucht werden kann.

In einigen Fällen kann die PDF-Bibliothek den gesuchten Text in einem Dokument nicht finden. Die Reihenfolge der zurückgegebenen Textelements entspricht möglicherweise nicht den visuellen Koordinaten, die Sie zum Rendern verwenden.

Um solche Herausforderungen zu bewältigen, empfehlen wir Folgendes:

1. Verwenden Sie die getText-Methode, um den vollständigen Text des PDF-Dokuments abzurufen.

2. Analysieren Sie die Struktur des extrahierten Index, um die Textelements zu lokalisieren, die Sie abrufen möchten.

3. Verwenden Sie basierend auf der Struktur des Index eine entsprechende Methode oder Aktivität, um das Textelement (getWordAfter oder getWordBefore für Instanz) abzurufen.

Hinweis

Sie können hier keine eindeutige Behelfslösung anwenden. In einigen Fällen kann der Wechsel von getWordAfter zu getWordBefore (oder umgekehrt) funktionieren. In komplexeren Fällen müssen Sie die Indexstruktur näher untersuchen und eine Indexstruktur finden, die stabil bleibt.

1.2.3 Bewährte Geschäftsverfahren für Web-Service-Aufrufe

Kontext

Wenn Sie die Funktion ajax.call verwenden, um mit einem Web-Service zu kommunizieren, erhalten Sie einen Status vom Server, beispielsweise einen der folgenden:

● 200

● 300

● Usw.

Manchmal funktioniert der Aufruf nicht, und Sie erhalten eine allgemeine Fehlermeldung. Das kann Folgendes sein:

● Nur der Status

● Eine allgemeine Meldung

Die Feststellung der Ursache des Problems kann sich schwierig gestalten.

Gründe

Web-Services können viele verschiedene Einstellungen kombinieren:

● Zertifikate auf Server-/Client-Seite

● SSL-Zertifikate, die Informationen verschlüsseln, Authentifizierung bereitstellen usw. Sie sind für die Authentifizierung auf dem Server erforderlich.

● Tokens

Es gibt verschiedene Arten von Web-Services:

● SOAP

● ODATA

● REST

Wenn Sie all diese Web-Services und Einstellungen kombinieren, kann dies zu vielen verschiedenen Möglichkeiten führen. Es gibt also nicht nur einen Weg, um die Methode ajax.call zu konfigurieren.

Außerdem kann es zu einer Fehlkonfiguration der Server oder Zertifikate kommen, die zu bestimmten Problemen führen kann.

1.2.3.1 Ursachen und Lösungen

In diesem Teil erhalten Sie Informationen zu den Hauptursachen und möglichen Lösungen von Problemen.

In den Themen dieses Abschnitts erfahren Sie mehr über Folgendes:

● Client-Zertifikate

● Serverzertifikate

● Cookies

● Tokens

1.2.3.1.1 Client-Zertifikate

Sie verwenden Client-Zertifikate für die Authentifizierung auf einem Server. Manchmal können Sie keine Verbindung zu einem Server mit einem Zertifikat herstellen.

Sie können die Option ignoreClientCertificate verwenden, um die Zertifikatauthentifizierung zu vermeiden.

Diese Option verwendet eine C++-Implementierung des Aufrufs.

Beispiel:

ctx.ajax.call({

url: url, method: 'GET',

contentType: "application/json", headers: headers,

ignoreClientCertificate: true,

success: function(res, status, xhr) {

rootData.xCSRF = xhr.headers["x-csrf-token"];

error: function(xhr, status, statusText) { ctx.log('error get')

Das API benötigt möglicherweise solche Zertifikate. Sie sind in der Regel obligatorisch.

ctx.ajax.call kann den Aufruf ohne diese Zertifikate nicht erzwingen.

Außerdem können Sie nicht angeben, welche Zertifikate verwendet werden sollen, da Sie sich nicht in einer Browserumgebung befinden.

Weitere Informationen zur Behelfslösung für dieses Problem erhalten Sie hier: Behandlung von Ajax-Aufrufproblemen in Ajax-Aufruf [Seite 27]

1.2.3.1.3 Cookies

Cookies ermöglichen es Ihnen, Client-Anfragen zu authentifizieren und alle Sitzungsinformationen beizubehalten.

Wenn Sie Cookies in Ihren Aufrufen verwenden müssen, ist das Festlegen eines Cookies erforderlich, um diese Informationen beizubehalten. Dann können Sie diese Informationen in einem anderen Aufruf verwenden.

Beispiel:

ctx.ajax.call({ //First call, get the cookies information url: "[url]",

method: e.ajax.method.get,

contentType: e.ajax.content.json, usePassport: true,

ignoreClientCertificate:true,

1.2.3.1.4 Tokens

Als Token werden Daten bezeichnet, die durch einen Server erzeugt werden und Informationen zur

Identifizierung eines Benutzers und der Token-Gültigkeit enthalten. Wenn Sie das Token im Ajax-Aufruf falsch verwenden, kann dies zu einem Problem führen. Wie die Cookies benötigt das Token zwei Aufrufe.

Beispiel: Sie führen einen API-Aufruf in der Factory durch. Sie verwenden den ersten Aufruf, um das Token aufzurufen. Der zweite Aufruf löst den API-Aufruf aus und legt einen Job in der Jobwarteschlange an. In diesem Fall werden die Aufrufe verknüpft. Der zweite Aufruf erfolgt, wenn der erste erfolgreich war.

Beispiel:

ctx.ajax.call({ //First call, get the token

url: serviceAccount.urls.accessTokenURL, //Url got from the service key “url parameter + /oauth/token?grant_type=client_credentials”

method: e.ajax.method.get,

contentType: e.ajax.content.json, header:{

Accept: e.ajax.content.json,

Authorization: 'Basic ' +

ctx.base64.encode(serviceAccount.credentials.clientID + ':' +

serviceAccount.credentials.clientSecret, false) // clientID and clientSecret got from the service key

serviceAccount.urls.irpaTriggerToken, //Token get from the API trigger

statusText + ' - ' + xhr.responseText);

error: function(xhr, status, statusText) {

//web service failed

sc.setError(e.error.Fail, 'Web service failed: [' + status + ']' + statusText + ' - ' + xhr.responseText);

1.2.3.2 Beispiele für bewährte Geschäftsverfahren

Hier sind einige Beispiele für bewährte Geschäftsverfahren für Web-Service-Aufrufe aufgeführt.

Wie bereits erwähnt, kann es aufgrund der Komplexität des Ajax-Aufrufs zu unterschiedlichen Problemen kommen.

Um diese Probleme mit dem Ajax-Aufruf zu bewerten, können Sie mehrere Tools verwenden:

● Postman

● cURL

● Terminal-Befehle

● Ajax-Aufruf

1.2.3.2.1 Postman

Postman ist ein Tool, mit dem Sie Web-Services und API-Aufrufe abfragen und testen können.

Dieses Tool verfügt über mehrere Funktionen und ist benutzerfreundlich.

1.2.3.2.2 cURL

cURL ist ein Befehlszeilentool, mit dem Sie Daten abrufen oder senden können, auch Dateien, die URL-Syntax verwenden.

Mit dem Build 17063 von Windows 10 ist cURL standardmäßig enthalten.

1.2.3.2.3 Terminal-Befehle

In der Eingabeaufforderung können Sie den cURL-Befehl während der Bewertung testen.

Wenn der Test erfolgreich ausgeführt wurde, ruft der Agent den cURL-Befehl über das Terminal auf.

1.2.3.2.4 Ajax-Aufruf

Konfigurieren Ihrer Ajax-Aufruffunktion

Wenn Sie nicht wissen, wie Sie die Ajax-Aufruffunktion konfigurieren sollen, gehen Sie wie folgt vor:

1. Stellen Sie fest, ob die Anforderung über Postman funktioniert.

Hinweis

Wenn sie nicht über Postman funktioniert, bedeutet dies, dass sie in Verbindung mit der Ajax-Aufruffunktion auch nicht funktioniert.

1. Wenn sie jedoch funktioniert, klicken Sie auf den Button Code.

2. Wählen Sie die Programmiersprache, mit der Sie arbeiten.

Hinweis

Im roten Feld auf der linken Seite werden verschiedene Sprachen angezeigt. Hier wird die JavaScript-jQuery-Sprache gewählt, da die Ajax-Aufruffunktion mit der Methode jQuery.ajax() entwickelt wurde. Im grünen Feld sehen Sie den von Postman generierten Code.

2. Verwenden Sie diesen Code in der Ajax-Aufruffunktion.

Kopieren Sie diesen Code, fügen Sie ihn in Desktop Studio ein, und passen Sie ihn bei Bedarf an. Weitere Informationen finden Sie unter call.

ignoreClientCertificate: localData.clientCert, success: function(res, status, xhr) {

Wenn Sie immer noch Probleme mit dem Aufruf haben (Probleme in Verbindung mit dem xhr-Objekt), nachdem Sie den Test im vorigen Prozess ausgeführt haben, versuchen Sie es mit folgenden Tests:

1. Versuchen Sie es mit ctx.ajax.call mit der auf „true“ gesetzten Option ignoreClientCertificate.

Hinweis

Wenn es immer noch nicht funktioniert, stellen Sie im Fehlercode die Ursache des Fehlers fest.

.

2. Ändern Sie die Einstellungen in Postman.

Die SSL-Zertifikatverifizierung ist in Postman standardmäßig deaktiviert. Dies bedeutet, dass der Aufruf erzwungen wird, auch wenn das Zertifikat nicht verfügbar ist.

Wenn nach Deaktivierung dieser Option der Aufruf über Postman nicht funktioniert, bedeutet dies, dass dieses Zertifikat für den Aufruf obligatorisch ist. Wie bereits erwähnt, hat der Ajax-Aufruf diese Option nicht.

Eine Lösung könnte die Verwendung von cURL sein.

3. Verwenden Sie den von Postman angegebenen cURL-Code.

○ Folgen Sie dem obigen Prozess Konfigurieren Ihrer Ajax-Aufruffunktion (Schritt 1.a. bis Schritt 1.b.), um den entsprechenden cURL-Code abzurufen.

○ Entfernen Sie in diesem Code sämtliche Vorkommen des Zeichens \, und ersetzen Sie alle einfachen Anführungszeichen durch doppelte Anführungszeichen.

○ Führen Sie den cURL-Code in der Eingabeaufforderung aus.

Beispiel:

curl --location --request GET "http://XXXX"

Wenn eine Fehlermeldung mit dem cURL-Code angezeigt wird, führen Sie eine Suche im Internet durch. Die Fehlermeldungen sind in der Regel sehr explizit. Wenn der Code erfolgreich ausgeführt

Wenn eine Fehlermeldung mit dem cURL-Code angezeigt wird, führen Sie eine Suche im Internet durch. Die Fehlermeldungen sind in der Regel sehr explizit. Wenn der Code erfolgreich ausgeführt