A Fujitsu Technology Solutions ============================ Information on this document ---------------------------- On April 1, 2009, Fujitsu became the sole owner of Fujitsu Siemens Computers. This new subsidiary of Fujitsu has been renamed Fujitsu Technology Solutions. This document from the document archive refers to a product version which was released a considerable time ago or which is no longer marketed. Please note that all company references and copyrights in this document have been legally transferred to Fujitsu Technology Solutions. Contact and support addresses will now be offered by Fujitsu Technology Solutions and have the format ...@ts.fujitsu.com. The Internet pages of Fujitsu Technology Solutions are available at http://ts.fujitsu.com/... and the user documentation at http://manuals.ts.fujitsu.com. Copyright Fujitsu Technology Solutions, 2009 Hinweise zum vorliegenden Dokument ---------------------------------- Zum 1. April 2009 ist Fujitsu Siemens Computers in den alleinigen Besitz von Fujitsu uebergegangen. Diese neue Tochtergesellschaft von Fujitsu traegt seitdem den Namen Fujitsu Technology Solutions. Das vorliegende Dokument aus dem Dokumentenarchiv bezieht sich auf eine bereits vor laengerer Zeit freigegebene oder nicht mehr im Vertrieb befindliche Produktversion. Bitte beachten Sie, dass alle Firmenbezuege und Copyrights im vorliegenden Dokument rechtlich auf Fujitsu Technology Solutions uebergegangen sind. Kontakt- und Supportadressen werden nun von Fujitsu Technology Solutions angeboten und haben die Form ...@ts.fujitsu.com. Die Internetseiten von Fujitsu Technology Solutions finden Sie unter http://de.ts.fujitsu.com/..., und unter http://manuals.ts.fujitsu.com finden Sie die Benutzerdokumentation. Copyright Fujitsu Technology Solutions, 2009 A Siemens Nixdorf Informationssysteme AG DRIVE/WINDOWS-COMP (BS2000) Version 2.1B readme Hinweise zur Programmierung im Objekt-Betrieb Ergaenzungen zum Manual A Inhaltsverzeichnis ------------------ 1 Allgemeines ............................................ Seite 1 2 Deklaration von Variablen .............................. Seite 2 2.1 Alphanumerische Datentypen ............................. Seite 2 2.2 Numerische Datentypen .................................. Seite 2 2.3 REDEFINES .............................................. Seite 3 2.4 PERMANENT und TEMPORARY ................................ Seite 3 3 Ergaenzungen zum Manual ................................ Seite 4 1 Allgemeines Im Abschnitt 2 werden Hinweise zur Deklaration von Variablen gegeben. Diese Hinweise bewirken eine Verringerung des generierten Objekt-Codes und des erforderlichen Arbeitsspeichers fuer Hilfsvariable. Sie verbessern die Performance durch eine Herabsetzung der Anzahl von Aufrufen an das Laufzeitsystem. Sie erleichtern eine evtl. Umstellung auf das Betriebssystem SINIX . Sie lassen sich mit vertretbarem Aufwand auch in bestehenden DRIVE-Prozeduren einsetzen. In Abschnitt 3 sind Manualkorrekturen zusammengefasst, die aus produktionstechnischen Gruenden nicht mehr ins ausgelieferte Handbuch eingebracht werden konnten. Siehe auch die Beschreibung der Inkompatibilitaeten und Einschraenkungen in der Freigabemitteilung SYSFGM.DRIVE-COMP-DOC.021.D . - 1 - A 2 Deklaration von Variablen 2.1 Alphanumerische Datentypen Zu den Datentypen CHARACTER und CHARACTER VARYING sollten die deklarierten Laengen den tatsaechlichen Anforderungen entsprechen. 2.2 Numerische Datentypen Im Interpreterbetrieb hat die Deklaration des Datentyps zu einer Variablen nur Auswirkung auf die interne Ablage, dagegen nicht auf die Durchfuehrung von Rechnungen; die Grundrechenarten erfolgen intern ueber den Datentyp EXTENDED DECIMAL (s.u.). Im Objektbetrieb dagegen werden die arithmetischen Ausdruecke entsprechend den gewaehlten Datentypen verarbeitet. Mit den Datentypen REAL und DOUBLE PRECISION ist es moeglich, zwischen kaufmaennischen und wissenschaftlichen Rechnungen zu trennen. Die folgende Aufstellung ordnet den einzelnen Datentypen die empfohlenen Anwendungen zu: - SMALLINT, INTEGER: Indexrechnungen, Argumente zu CYCLE FOR bei ganzzahliger Schrittweite, POSITION- und Laengenangaben in CHARACTER-Ausdruecken, Exponent zur Potenz-Operation, Argumente zur MODULO-Funktion - DECIMAL kaufmaennische Rechnungen, wobei bei den Zwischenergebnissen entweder alle Vor- und Nachkommastellen erhalten bleiben sollen oder die Anzahl von Nachkommastellen auf einen festen Wert beschraenkt wird. Bei der Deklaration sollten Genauigkeit und Skalenfaktor nur den tatsaechlichen Anforderungen entsprechen, damit diese fuer die Zwischenergebnisse nicht uebermaessig schnell anwachsen und eine Ungenauigkeit bei der Division aufgrund eines unzureichenden Skalenfaktors fuer den Quotienten minimalisiert wird. Sollte trotzdem eine Ungenauigkeit bei einer Division auftreten, dann ist eine Zwischenzuweisung diesen Rechenausdruckes an eine Variable mit einem ausreichenden Skalenfaktor vorzunehmen. Die Zwischenergebnisse haben eine maximale Genauigkeit von 30. Es koennen daher Rechenueberlaeufe auftreten (s. EXTENDED DECIMAL). - REAL, DOUBLE PRECISION wissenschaftliche Rechnungen Bei mathematischen Funktionen oder der Potenz-Operation ** erhaelt das Zwischenergebnis den Datentyp DOUBLE PRECISION , daher sollte dann von vorneherein DOUBLE PRECISION gewaehlt werden. Um eine Konvertierung nach DOUBLE PRECISION zu vermeiden, sollte bei einer Quadrierung anstatt der Operation ** 2 die Funktion SQR verwendet werden. Das Ergebnis der Vergleichsoperation &A = &B ist undefiniert wegen der prinzipiellen Ungenauigkeit der beiden Vergleichswerte. Daher sollte die Bedingung IF &A = &B ersetzt werden durch IF ABS(&A - &B) < C , wobei C eine vorgegebene Schranke darstellt. - 2 - A - EXTENDED DECIMAL Dieser Datentyp ist ein "privater Datentyp", d.h. kein Element des Betriebssystems BS2000. Alle Rechenoperationen auf einen solchen Datentyp erfolgen ueber eigene Routinen; diese Zugriffe sind daher extrem inperformant. Dieser Datentyp sollte nur verwendet werden, wenn bei DECIMAL Ueberlaeufe auftreten. Das Zwischenergebnis zu ROUND und TRUNC erhaelt den Typ EXTENDED DECIMAL. - NUMERIC Ab dieser Version wird das intern abgespeicherte Vorzeichen normiert, so dass bei einem nicht negativen Wert auch die letzte Stelle eine abdruckbare Ziffer darstellt. Dies erfordert zusaetzliches Coding; daher sollte der Typ NUMERIC nur dann verwendet werden, wenn die Darstellung des Wertes als eine Folge abdruckbarer Ziffern wesentlich ist. Im uebrigen wird auf die Funktionen CHARACTER und NUMERIC jeweils mit Angabe einer Maske verwiesen, die eine Variable vom beliebigen numerischen Typ und ihre druckaufbereitete Darstellung ineinander ueberfuehren. Bei Rechnungen mit NUMERIC erfolgt immer zunaechst eine Konvertierung nach DECIMAL, so dass man die Ausgangsvariable direkt mit DECIMAL definieren kann (bei fehlender Scale sogar mit INTEGER). - Mischung von DECIMAL und REAL bzw. DOUBLE PRECISION Eine Mischung zwischen diesen Datentypen in einem Rechenausdruck ist zu vermeiden, da sonst die spezifischen Eigenschaften, die zur Auswahl eines dieser beiden Datentypen gefuehrt haben, wieder verlorengehen. Aus diesem Grunde ist es vorteilhaft, in Rechenausdruecken anstelle von numerischen Literalen typrichtige Variable mit diesen Literalen als INIT-Werten zu verwenden. - Hinweis fuer eine evtl. Portierung nach SINIX: Dort sind die Typen NUMERIC, DECIMAL, EXTENDED DECIMAL identisch. 2.3 REDEFINES Ab dieser Version ist eine Redefinition von CHARACTER mit NUMERIC bzw. umgekehrt ohne weiteren Programmieraufwand moeglich, da bei nicht negativem Inhalt von NUMERIC auch das letzte Byte eine abdruckbare Ziffer darstellt. 2.4 PERMANENT und TEMPORARY Im Objektbetrieb unter UTM sind die permanten und temporaeren Variablen in verschiedenen Datenbereichen abgelegt, die bei Dialogschrittwechsel getrennt gesichert und rekonstruiert werden. In DRIVE-Prozeduren, die nicht mit CALL aufgerufen werden sollen, ist eine Unterscheidung zwischen permanenten und temporaeren Variablen nicht notwendig. Alle Variablen inklusive der Parameter koennen als permanent deklariert werden, da die Systemvariable als permanente Variable ohnehin vorhanden sind. Dadurch entfaellt die Sicherung und Rekonstruktion des Datenbereichs fuer die temporaeren Variablen bei jedem Dialogschritt. - 3 - A 3. Ergaenzungen zum Manual - Inhalt : * Es fehlt darin 1.3 Readme-Datei * Es fehlt darin 4.5 Beispiel TIAM-Anwendung - Seite 5 Tabelle 1-1 : * Die Namen der DSSM/SCCM-Deklarationsdateien haben sich geaendert und lauten jetzt zu Newstyle: SYSSSC.DRIVE-COMP-LZS.021.NXS SYSSSC.DRIVE-COMP-LZS.021 zu Oldstyle: SYSSSD.DRIVE-COMP-LZS.021.NXS SYSSSD.DRIVE-COMP-LZS.021 SYSSSD.DRIVE-COMP-LZS.021.CL5 - Seite 34 Bild 4-3 : * LMSLIB ist obligatorisch , * SYSLIB.FHS.081 (statt .080) - Seite 35 ,36 : * BLSLIB-Anweisung auf LMSLIB fehlt, * SYSLIB.FHS.081 (statt .080), * nach applilib nur ',-' (statt ',,-') - Seite 36 |I| : * Dieser Satz muss lauten: Soll der Report-Generator eingesetzt werden, muss zusaetzlich der Link-Name RSOML zugewiesen werden. - Seite 39 : * BLSLIB-Anweisung auf LMSLIB fehlt, * SYSLIB.FHS.081 (statt .080), * die Klammerung im Kommando /START-PROGRAM ist falsch (s. Seite 36, dort korrekt) * es fehlt SHARE-SCOPE=NONE,- (s. Seite 36) - Seite 57 : * SYSLIB.FHS.081 (statt .080), * die Klammerung im Kommando /START-PROGRAM ist falsch (s. Seite 36, dort korrekt) * es fehlt SHARE-SCOPE=NONE,- (s. Seite 36) - Seiten 33, 37, 54 : * Folgende INCLUDE-Anweisung ist zu ergaenzen, wenn der EDT nicht shared geladen ist: // INC-MOD LIB=&EDTLIB,ELEM=IEDTGLE,TYPE=R - 4 -