FEHLER IN COBOL ANWENDUNGEN VERMEIDEN MIT zPAAS QA Tobias Braun, Technischer Berater Mainframe-Plattform GEWACHSENE COBOL ANWENDUNGEN STELLEN FÜR ENTWICKLER EINE GROSSE HERAUSFORDERUNG DAR GEWACHSENE COBOL ANWENDUNGEN STELLEN FÜR ENTWICKLER EINE GROSSE HERAUSFORDERUNG DAR SEHEN WIR UNS EIN BEISPIEL AN: EINE VERMEINTLICH EINFACHE SCHLEIFE KANN ZU EINEM ABEND FÜHREN IDENTIFICATION DIVISION. PROGRAM-ID. TIONC08G ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 77 WS-COUNT 01 WS-STRINGS. 05 ALPHA PIC S9999 COMP SYNC VALUE +0. PIC X(10) OCCURS 100 TIMES. PROCEDURE DIVISION. … * SOME LOGIC TO FILL THE ALPHA ARRAY … PERFORM TEST BEFORE VARYING WS-COUNT FROM 1 BY 1 UNTIL ALPHA(WS-COUNT) = LOW-VALUE … END-PERFORM GOBACK. Kein sicheres Abbruchkriterium WIE KÖNNTEN DIE KONSEQUENZEN EINES SOLCHEN ABBRUCHS AUSSEHEN? DIE ANTWORT: zPAAS QA – DIE CODE-FIREWALL FÜR IHRE COBOL ANWENDUNGEN DAS HERZSTÜCK VON zPAAS QA: UNSERE COMPILER TECHNOLOGIE YYOP State of the Art Compiler Technologie Regelbasiert und höchst anpassbar In vielen Projekten erfolgreich angewandt ANALYSIEREN VERSTEHEN TRANSFORMIEREN SOURCEN YYOP BESTEHT AUS DREI HAUPTKOMONENTEN: ERGEBNIS FILES PARSER VIRTUELLE MASCHINE GENERATOR INTEGRIERTE ENTWICKLUNGSUMGEBUNG YYOP DB2 REPOSITORY LASSEN SIE UNS EIN BISSCHEN ÜBER YYOP INTERNAS SPRECHEN: WAS MACHT YYOP SO SPEZIELL? Features: Verwendung: - - - Kann Code virtuell im Speicher ausführen Kann Makro Code interpretieren und ausführen VIRTUELLE MASCHINE Statisch dynamisch Test Coverage Makros: Generierung und Debugging Klone erkennen Datenfluss Analyse Programmfluss Analyse zPAAS QA IST NAHTLOS INTEGRIERT IN ECLIPSE: DIE NACHRICHTENANSICHT zPAAS QA IST NAHTLOS INTEGRIERT IN ECLIPSE: DIE REGELÜBERSICHT zPAAS QA IST NAHTLOS INTEGRIERT IN ECLIPSE: DIE REGELKONFIGURATION zPAAS QA LÄSST SICH FÜR IHRE BEDÜRFNISSE KONFIGURIEREN: MANDANTENFÄHIGKEIT UND DIE VERWALTUNG VON STAGES zPAAS QA LÄSST SICH MIT VERSCHIEDENSTEN SCHNITTSTELLEN ANBINDEN zPAAS QA Eclipse Plugin XML Message Connector API XML Messages RDz remote error view Parser Call Interface API Customer CMS Parser Batch Call CMD zPAAS QA BENÖTIGT KEINE COPYBOOKS FÜR DEN PARSEVORGANG: DAS SYSMDECK FEATURE RDz RDz Customer CMS Parser Call API liefert XML für den Remote Errors View Original Cobol Code zPAAS QA Plugin SYSMDECK anfordern SYSMDECK build SYSMDECK build JOB SYSMDECK wird an Windows zurück geliefert Cobol Copy Cobol Copy Cobol Copy Cobol Copybooks (VIELLEICHT) DAS EINFACHSTE ALLER BEISPIELE – SQLCODE CHECKING GUIDELINES TEIL I 01 SQLCA. 05 SQLCAID PIC 05 SQLCABC PIC 05 SQLCODE PIC 05 SQLERRM. 49 SQLERRML 49 SQLERRMC 05 SQLERRP PIC X(8). S9(9) COMP-5. S9(9) COMP-5. PIC S9(4) COMP-5. PIC X(70). X(8). PROCEDURE DIVISION. EXEC SQL SELECT WORT INTO :WORT01 FROM T001 END-EXEC. IF SQLCODE OF SQLCA NOT ZERO DISPLAY 'SQL ERROR' END-IF. Ein sehr einfaches Beispiel. Der SQLCODE wird direkt nach dem EXEC geprüft. (VIELLEICHT) DAS EINFACHSTE ALLER BEISPIELE – SQLCODE CHECKING GUIDELINES TEIL II 01 SQLCA. 05 SQLCAID PIC X(8). 05 SQLCABC PIC S9(9) COMP-5. 05 SQLCODE PIC S9(9) COMP-5. … PROCEDURE DIVISION. EXEC SQL SELECT WORT INTO :WORT01 FROM T001 END-EXEC. MOVE A TO B IF SQLCODE OF SQLCA NOT ZERO DISPLAY 'SQL ERROR' END-IF. SQLCODE Überprüfung nicht direkt hinter dem EXEC Machen wir es etwas schwieriger: Die Überprüfung des SQLCODE findet nicht direkt nach dem EXEC statt. (VIELLEICHT) DAS EINFACHSTE ALLER BEISPIELE – SQLCODE CHECKING GUIDELINES TEIL III 01 SQLCA. … 05 SQLCODE PIC S9(9) COMP-5. 01 SQLCA-CUST. … 05 SQLCODE-CUST PIC S9(9) COMP-5. PROCEDURE DIVISION. EXEC SQL SELECT WORT INTO :WORT01 FROM T001 END-EXEC. MOVE SQLCA TO SQLCA-CUST IF SQLCODE-CUST NOT ZERO DISPLAY 'SQL ERROR' END-IF. zPAAS QA ist immer noch in der Lage die SQLCODE Prüfung zu erkennen! Und jetzt noch etwas anspruchsvoller: Wir übertragen die SQLCA in eine zweite SQLCA Struktur. (VIELLEICHT) DAS EINFACHSTE ALLER BEISPIELE – SQLCODE CHECKING GUIDELINES TEIL IV 01 SQLCA. … 05 SQLCODE PIC S9(9) COMP-5. PROCEDURE DIVISION. EXEC SQL SELECT WORT INTO :WORT01 FROM T001 END-EXEC. PERFORM SQL-CHECK. SQL-CHECK. IF SQLCODE-CUST NOT ZERO DISPLAY 'SQL ERROR' END-IF. zPAAS QA erkennt die SQLCODE Prüfung auch im separaten Paragraphen! Im letzten Beispiel verlagern wir die SQLCODE Prüfung in einer separaten Paragraphen. UNSER ANFANGSBEISPIEL: EINE SCHLEIFE, DIE KEINE ZUVERLÄSSIGE ABBRUCHBEDINGUNG ENTHÄLT IDENTIFICATION DIVISION. PROGRAM-ID. TIONC08G ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 77 WS-COUNT 01 WS-STRINGS. 05 ALPHA PIC S9999 COMP SYNC VALUE +0. PIC X(10) OCCURS 100 TIMES. PROCEDURE DIVISION. … * SOME LOGIC TO FILL THE ALPHA ARRAY … PERFORM TEST BEFORE VARYING WS-COUNT FROM 1 BY 1 UNTIL ALPHA(WS-COUNT) = LOW-VALUE MOVE 'END' TO ALPHA(WS-COUNT) END-PERFORM GOBACK. Kein sicheres Abbruchkriterium DIESE SITUATION KANN zPAAS QA AUTOMATISCH ERKENNEN UND DEM ENTWICKLER MELDEN! IDENTIFICATION DIVISION. PROGRAM-ID. TIONC08G ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 77 WS-COUNT 01 WS-STRINGS. 05 ALPHA PIC S9999 COMP SYNC VALUE +0. PIC X(10) OCCURS 100 TIMES. PROCEDURE DIVISION. … * SOME LOGIC TO FILL THE ALPHA ARRAY … PERFORM TEST BEFORE VARYING WS-COUNT FROM 1 BY 1 UNTIL ALPHA(WS-COUNT) = LOW-VALUE MOVE 'END' TO ALPHA(WS-COUNT) END-PERFORM GOBACK. zPAAS QA: DIE VORTEILE AUF EINEN BLICK Perfekte Integration Keine False Positives Intelligente Parser Mandanten und Stages Fokus auf Fehlervermeidung REFERENZ STORY: BMW Sind Sie interessiert, zPAAS QA live im Einsatz zu sehen? Treffen Sie Herrn Heckl von der BMW Group in München. Rufen Sie an unter +49 751 56140 229 (Heidi Schmidt, CEO) und vereinbaren Sie einen Termin mit uns. NUTZEN SIE UNSEREN GUTSCHEIN FÜR EIN KOSTENLOSES UND INDIVIDUELLES WEBINAR ZUM THEMA zPAAS QA Dieter Kölbl Senior Software Architekt IBM z +49 751 56140-233 [email protected] Tobias Braun Technischer Kundenberater IBM z +49 751 56140-241 [email protected] WERTE ERHALTEN. ZUKUNFT GESTALTEN. IT-KOSTEN EINSPAREN PKS entwickelt seit 1988 Lösungen zur Software-Modernisierung und –Migration PKS verfügt über eine einzigartige Technologie (YYOP) zur Software-Analyse, Interpretation und -Transformation PKS, das ist ein sympathisches und kompetentes Team mit über 100 Mannjahren Erfahrung in der Optimierung individueller Software-Anwendungen PKS ist verlässlicher und solider Partner für eine langjährige Zusammenarbeit PKS LÖSUNGSPORTFOLIO IM ÜBERBLICK