Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Cobol- bzw. CICS-Profis gefragt





Frage

Guten Abend!! Jetzt sind Cobol- und CICS-Profis gefragt. Ich habe in einer CICS-Maske ein Feld definiert, in dem eine Personalnummer max. 8stellig numerisch eingegeben werden soll. Wichtigste Feld-Attribute: ATTR=(UNPROT), JUSTIFY=(RIGHT,ZERO) In dem entsprechenden Copy für die Maske (wurde generiert) ist das Feld aber alphanumerisch definiert, was sich auch nicht ändern läßt. In meinem Cobol-Programm will ich nun prüfen, ob auch wirklich eine numerische Eingabe gemacht wurde, wobei auch weniger als 8 Ziffern gültig sein sollen, und es egal ist ob die Eingabe jetzt an der 1. Stelle des Feldes oder an der 3. Stelle beginnt. Es dürfen nur keine Leerzeichen zwischen den Ziddern und keine Buchstaben eingetippt werden. Bsp.: gültige Eingaben: 123_____ ___12345 ____89__ usw. ungültge Eingaben: _12b____ 12__4___ 1234__bc abc_____ usw. ("_" stellt ein Leerzeichen dar!) Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt. Nun zu meiner Frage: Wie bekomme ich es gebacken, das Feld auf gültige NUMERIC-Werte abzufragen? Muß ich da noch ein bestimmtes Attribut in dem Masken-Makro setzen oder den Inhalt des Feldes in ein numerisch definiertes Cobol-Feld "moven" und Byte für Byte prüfen oder gibt es da einen "Trick", der mir noch nicht bekannt ist? Über eine Antwort würde sich ein FiAe-Azubi sehr freuen!! :-) Gruß cmkatz

Antwort 1 von Fenrir

Hallo cmkatz,

also wenn ich das noch richtig in Erinnerung habe, musst Du die Daten nach der Eingabe (die dann im Anschluß mit der Datenfreigabe bestätigt wurden) lesen in einen definierten Bereich in der WORKING-STORAGE SECTION. Alle Plausibilitätsprüfungen der Daten müssen von Hand programmiert werden.

Antwort 2 von cmkatz

Hallo,

danke für deine Antwort, Fenrir.

Nur ist es so, dass CICS automatisch alle übrigen Stellen, die ich oben mit einem "_" markiert habe mit etwas belegt, was nicht SPACE und nicht NUMERIC ist. Das macht sich dann natürlich bei der Prüfung des gesamten Ausdrucks auf NUMERIC bemerkbar, so wird z.B. die Eingabe "123_____" als nicht numersich erkannt.

Gruß
cmkatz

Antwort 3 von Rainer Juser

Vielleicht solltest vor dem Aufrufen der Maske die Felder entsprechend initialisieren. Ich hab sowas auf jeden Fall schon mal programmiert, dass eine Eingabe wie Du sie machst akzeptiert wird.

Ich habe das Feld in der Maske so definiert:
Num-Option: FixKomma S9(5)V99 -> -1234,50
BlankWZero: Default

Das Feld wird im Cobol Programm zu Beginn erst mal mit Zeros gefüllt.
Bisher haben sich die Anwender noch nicht beschwert, dass sie den Rest des Feldes erst löschen müssen.... und das würden die, wie ich sie kenne, bestimmt tun ...

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: