Testfälle (EVI2SAP)
Manuelle Testfälle
Nachdem alles installiert und eingerichtet ist, soll durch die Abarbeitung dieses Testleitfadens die vollständige Funktionalität geprüft werden können. Die Tests sollten im ersten Schritt unter einem Benutzerkonto ausgeführt werden, das sowohl der Administratorgruppe (Test der Verbindung) als auch der Gruppe OSST_ADMIN angehört, damit die Ergebnisse in der Transaktionstabelle kontrolliert werden können.
Verbindung
Um die Verbindung zu testen, ist in der Entität SAP-Konfiguration (Administration/Module(SAP-Konfiguration) der Aktionsbutton "Serverseitiger Test" anzuklicken.
Bei Problemen sind die Einstellungen in der SAP-Konfiguration zu überprüfen und anzupassen. Eine weitere Fehlerquelle liegt in der Installation der SAP-Bibliotheken, die zu überprüfen ist.
Geschäftspartner
Im Auslieferungszustand ist die Entität Geschäftspartner für die explizite synchrone Übertragung bei der Neuanlage und für die automatische synchrone Übertragung bei der Aktualisierung konfiguriert.
Zum Test ist ein neuer Geschäftspartner mit Adresse anzulegen:
Danach kann dieser durch Anklicken des Aktionsbuttons SAP Online/Übertragen nach SAP übertragen werden. Damit die Übertragung funktioniert, ist es wichtig, eine im SAP-System existierende Adresse anzugeben, wenn die Adressprüfung in SAP aktiviert wurde. Nach der Übertragung erhält der Benutzer eine Mitteilung.
In den Daten des Geschäftspartners kann dann kontrolliert werden, welche Nummer von SAP für diesen Geschäftspartner vergeben wurde:
Mithilfe der Nummer kann der Satz in SAP gesucht werden, und die Daten können kontrolliert werden.
Auf EVI-Seite kann der WOI-Trans-Satz geprüft werden, indem der Aktionsbutton SAP Online/Transaktionen angeklickt wird:
Aktivitäten
Im Gegensatz zu Geschäftspartnern werden Aktivitäten asynchron übertragen. Der Benutzer bekommt also von der Übertragung erstmal nichts mit.
Zum Testen ist ein Satz anzulegen, der die Startbedingungen zum Übertragen erfüllt (siehe 3.2.3 Aktivitäten Seite 19). Damit das Anlegen des WOI-TRANS-Satzes und das Übertragen überprüft werden kann, sollte der Benutzer den eingangs beschriebenen Gruppen angehören.
Sobald das System eine Aktivität erkennt, die die Startbedingungen erfüllt, wird ein WOI-TRANS-Satz angelegt. In diesem Fall wird der Aktionsbutton
SAP Online/Transaktionen
aktiviert, und der Satz kann geöffnet werden.
Er besitzt zu Beginn den Status
S-Start
Jetzt ist die Übertragung abzuwarten, die bei dem standardmäßig konfigurierten Timer in den nächsten 5 Minuten stattfindet. Durch einen Refresh des Satzes kann der Status kontrolliert werden. Zwischenzeitlich kann es sein, dass der Status auf
E-Error
steht, weil dieser Status unmittelbar vor der Übertragung gesetzt wird. Dieser Zustand kann von einem richtigen Fehler durch die Interpretation der Logausgaben (bei der ersten Übertragung in diesem Zustand noch leer) unterschieden werden. Nachdem der Satz übertragen wurde, sollte der Zustand
F-Finished
eingetragen werden.
Wenn ein Fehler aufgetreten ist, dann bleibt der Zustand
E-Error
bestehen, mit dem Unterschied, dass jetzt in den Logausgaben der Fehler protokolliert wurde.
Wenn die Übertragung erfolgreich war, wurde für den Satz die von EVI vorgegebene Nummer (Kontakt-Nr.(EVI)) als Kontaktnummer in SAP vergeben und zurückgeliefert (Kontakt-Nr.(ISU)).
Auf SAP-Seite kann kontrolliert werden, ob zu dieser Nummer der Satz korrekt angelegt wurde:
Testfälle: Überblick
Bereich | Testfall | Testfallbeschreibung | Erwartetes Ergebnis | Ergebnis (OK/Fehler) |
---|---|---|---|---|
Geschäftspartner | Neuanlage Geschäftspartner Typ Unternehmen | Neuen GP im EVI anlegen vom Typ Unternehmen | SAP GP vom Typ Organisation wurde erzeugt. Alle relevanten Felder wurden übertragen (siehe Tabelle/Feldmapping Kapitel 3.2.1.5) |
|
Geschäftspartner | Neuanlage Geschäftspartner Typ Mann / Frau | Neuen GP im EVI anlegen vom Typ Mann oder Frau. | SAP GP vom Typ Person wurde erzeugt. Alle relevanten Felder wurden übertragen (siehe Tabelle/Feldmapping Kapitel 3.2.1.5 & 3.2.2.5) | |
Geschäftspartner | Änderung Geschäftspartner | Vorhandenen GP im EVI ändern. | Alle relevanten Felder wurden in SAP geändert (siehe Tabelle/Feldmapping Kapitel 3.2.1.5 & 3.2.2.5) | |
Geschäftspartner | Geschäftspartner mit Straßenadresse | GP mit Straßenadresse neu anlegen oder ändern. | Nach der Übertragung nach SAP muss der GP im SAP eine Standardadresse mit der Adressart STRASSE haben. | |
Geschäftspartner | Geschäftspartner mit Straßen- und Postfachadresse | GP mit Straßen- und Postfachadresse neu anlegen oder ändern. | Im SAP muss der GP eine Standard Adresse haben mit der Straße und Postfach. | |
Geschäftspartner | Geschäftspartner mit Straßen- und Großkundenadresse | GP mit Straßen- und Großkundenadresse neu anlegen oder ändern. | Im SAP muss der GP eine Standardadresse haben mit der Straße und Großkunde. | |
Aktivitäten / Kontakte | Neuanlage Aktivität | Zu einem EVI GP mit SAP GP-Nr. eine neue Aktivität erfassen. | SAP Kontakt muss am richtigen GP vorhanden sein. Alle relevanten Felder wurden übertragen (siehe Tabelle/Feldmapping Kapitel 3.2.3.5) | |
Aktivitäten / Kontakte | Änderung Aktivität | WOI-relevante Felder in Aktivität ändern. Zusätzlich den Aktivitätentext um neue Zeilen ergänzen (Sonderzeichen, Kombinationen von Sonderzeichen, Zeilenumbrüche) | Änderungen werden in den SAP Kontakt übertragen. Die HTML-Formatierung wird nicht mit übertragen. |
Automatische Tests innerhalb von EVI
In der Scriptbibliothek gibt es mehrere Testklassen, die sich mit dem Test einzelner SAP-Konstrukte beschäftigen. Im Standard beginnen diese mit SC12OSSTEVI2SAPTest, gefolgt vom Namen der Entität.
Darin befinden sich Methoden, die einzelne Sachverhalte im System testen. Jede Methode testet dabei mit einem oder mehreren Tests bestimmte Sachverhalte.
Jeder Test ist eigenständig lauffähig. Mit einfachen Methoden kann man für jedes System eigene Tests bauen, welche kundenspezifische Konstellationen testen können.
Dabei verwendet man folgenden Aufruf:
SC12OSSTEVI2SAPTestUtils.executeTest(result, entityName, entityPk, ws, realTransfer, EVIWert1, [EVIFeld1], ErwarteterBAPIWert1, [BAPIFeld1], … EVIWertn, [EVIFeldn], ErwarteterBAPIWertn, [BAPIFeldn]);
Die Methode erzeugt einen Satz der Entität entityName mit den angegeben Werten EVIWert1..EVIWertn, die in die Felder EVIFeld1..EVIFeldn geschrieben werden. Die Schnittstelle reagiert auf das Anlegen des Satzes und überträgt diesen nach SAP (immer automatisch synchron - unabhängig von den Einstellungen in der globalen Variable). Dabei werden die an das BAPI übergebenen Werte abgegriffen und mit den Werten ErwarteterBAPIWert1..ErwarteterBAPIWertn verglichen, die in den Feldern BAPIFeld1..BapiFeldn stehen. Sowohl bei den EVI-Feldern als auch bei den BAPI-Feldern ist eine Liste anzugeben. Damit ist es möglich, den Wert in mehrere Felder zu schreiben. Da die Werte immer als Quatrupel angegeben werden - also immer 4 Werte zusammen-gehören - kann man eine Zuordnung definieren, die bestimmt, welches EVI-Feld, welchem BAPI-Feld zugeordnet ist. Diese Zuordnung hat jedoch für die Methode selbst keine Bewandtnis und dient nur der Übersichtlichkeit des Aufrufs. Wenn aus einem EVI-Feld mehrere BAPI-Felder resultieren, sind mehrere Quatrupel anzugeben, bei denen die EVI-Felder mit "null, []" angegeben werden.
Im Code der Testfälle wird die Liste der Felder zunächst in einer Variable vom Typ ArrayList (Name: testfields) aufgebaut. Diese Liste wird dann durch Aufruf von SC12OSSTEVI2SAPTestUtils.addTestfieldsInC2() um Felder ergänzt, die entweder nicht auf jedem System vorhanden sind, oder die Werte enthalten, die auf jedem System anders sind. Bei der Installation ist diese Methode anzupassen.
Der Parameter result ist eine leere Hashmap, die von der Funktion mit Werten gefüllt wird. Unter dem Schlüssel "pk" wird der Primärschlüssel des durch die Funktion angelegten Satzes zurückgeliefert. Unter dem Schlüssel "transPk" ist der Primärschlüssel des angelegten Transaktionssatzes zu finden.
Wenn in dem Parameter entityPk ein Wert angegeben wird, dann wird kein neuer Satz erzeugt. Stattdessen wird über den in diesem Parameter angegebenen Primärschlüssel der Satz geladen und mit den übergebenen Werten aktualisiert. Der Wert für entityPk stammt typischerweise aus einem vorherigen Aufruf von executeTest, bei dem der PK aus der Map result gelesen wird.
Um bei einer Neuanlage den erzeugten Satz mit einem anderen zu verknüpfen, ist im Parameter ws ein IScriptWorkSpace der übergeordneten Entität anzugeben. So kann beispielsweise eine Adresse zu einem Geschäftspartner angelegt werden (siehe SC12OSSTEVI2SAPTestCustomer.updateAddress).
Über das Flag realTransfer kann gesteuert werden, ob die Werte zu SAP übertragen werden. Es wird in den Tests mit dem Wert der globalen Variable C12OSST_transferOnTest belegt. Der Test vergleicht die von der Schnittstelle erzeugten BAPI-Parameter mit den erwarteten Parametern. Eine Übertragung ist also nicht unbedingt notwendig. Eine Verbindung wird jedoch in jedem Fall aufgebaut, da sie benötigt wird, um die BAPI-Strukturen aufzubauen. Wenn das Flag mit false angegeben wird, unterbleibt jedoch das Übertragen der BAPI-Strukturen nach SAP. Wenn es mit true angegeben wird, werden die Werte übertragen. Das kann möglicherweise Fehlermeldungen auslösen, die sonst nicht auftreten, aber von dem Test auch ausgewertet werden.
Die Methode liefert eine Liste von Meldungen zurück. Wenn der Test erfolgreich war, dann ist diese Liste leer. Wenn Fehler auftreten, dann stehen sie in der Liste.
Folgende Tests sind vorhanden:
Testmethode | Beschreibung |
---|---|
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner vom Typ F |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner vom Typ H |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner vom Typ U |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner und aktualisiert danach das Feld Name2 |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner und aktualisiert danach die Adresse |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner und aktualisiert ein nicht SAP-relevantes Feld. Hier sollte es zu der Meldung "ERR021: No new TransferRecord created" kommen, weil keine Übertragung stattfindet. Diese Meldung wird vom Test geprüft. |
SC12OSSTEVI2SAPTestCustomer. | Erzeugt einen Geschäftspartner und eine zweite Adresse dazu. |
SC12OSSTEVI2SAPTestActivity. | Erzeugt einen Geschäftspartner und eine Aktivität dazu. |
SC12OSSTEVI2SAPTestActivity. | Erzeugt einen Geschäftspartner und eine Aktivität dazu. Danach wird der Text der Aktivität aktualisiert. |
SC12OSSTEVI2SAPTestActivity. | Erzeugt einen Geschäftspartner und eine Aktivität dazu. Danach wird ein nicht SAP-relevantes Feld aktualisiert. Hier sollte es zu der Meldung "ERR021: No new TransferRecord created" kommen, weil keine Übertragung stattfindet. Diese Meldung wird vom Test geprüft. |
SC12OSSTEVI2SAPTestActivity. | Erzeugt einen Geschäftspartner und eine Aktivität dazu. Da bei der Aktivität die Kontaktklasse nicht angegeben ist, wird die Startbedingung für die Übertragung nach SAP nicht erfüllt. Hier sollte es zu der Meldung "ERR020: No TransferRecord created." kommen, weil keine Übertragung stattfindet. Diese Meldung wird vom Test geprüft. |
Bei Änderungen an der Schnittstelle durch Customizing sind auch die Tests anzupassen, insofern die Änderungen zu anderen Ergebnissen führen. Vorzugsweise sollte dazu die Methode SC12OSSTEVI2SAPTestUtils.addTestfieldsInC2() verwendet werden. Sie enthält in einem "switch" für jeden Testfall einen Zweig, der mit Codes gefüllt werden kann, um die Felder im Testfall aufzunehmen. Somit ist sichergestellt, dass bei einem Update der Testfälle die in C2 aufgenommenen Felder auch in dem neuen Testfall verwendet werden.