Anmelden

View Full Version : Und gleich noch eine Frage zu QCMDEXC



harkne
04-03-08, 10:03
Hallo zusammen,

jetzt habe ich noch Fragen zum QCMDEXC

1. Muss ich im Parameter "Length" die genaue Länge des Cmd-Strings angeben oder kann ich auch länger angeben

2. Wenn ich die genaue Länge angeben muss und mir im CL den Befehl zusammenstelle, wie kann ich mir da die Länge ermitteln ?

Vielen Dank

Pikachu
04-03-08, 10:40
Du kannst einfach die gesamte Länge der übergebenen Zeichenkette angeben (Leerzeichen am Ende stören da nicht), jedoch keinesfalls länger, da sonst auf einen Speicherbereich zugegriffen wird, der nicht zur Zeichenkette selbst gehört! Siehe auch hier (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qcmdexc.htm).

harkne
04-03-08, 13:04
Vielen Dank für die Hilfe

Robi
07-03-08, 14:58
H BNDDIR('QC2LE')
D ERRID S 7 A IMPORT('_EXCP_MSGID')
D QSYSTEM PR extProc('system')
D cmd * value options(*string)

/free
QSYSTEM('dein cl befehl');
IF ERRID = 'CPF1234' ;

ENDIF;
------------------------------------------
spart die dusselige Längenangabe und gibt immer die CPF Nr zurück

cmd ist im Prototypen def. und braucht auch nicht mehr def. werden. Den Prototypen in eine /copy ... alles immer gleich

Robi

B.Hauser
07-03-08, 16:29
spart die dusselige Längenangabe und gibt immer die CPF Nr zurück

... aber weder den Message Text noch die variablen Message-Texte die als Platzhalter u.U. im Message-Text der Message-Id stehen.

Da ist mir der QCMDEXC schon lieber, da ich im Bedarfsfall die Message-Id und die ersten 80 Stellen des aufbereiteten Message-Textes (inclusive Variablen) aus der Programm-Status-Datenstruktur entnehmen kann.

Stelle 41-46 = Message-Id
Stelle 91-170 = Aufbereiteter Message-Text

Birgitta

Robi
10-03-08, 08:02
Stimmt zwar, Birgitta
aber wir belästigen unsere Anwender nicht mit den Fehlermeldungen des i5/Os. Daher brauche ich die Texte in weniger als 1 % der Aufrufe. In 80 % will ich nur wissen ob es geklapt hat oder nicht. In diesen 80% ist die Warscheinlichkeit, das es nicht geklappt hat so gering, das im Vorfeld schon etwas gigantisch schief gelaufen sein muß.
Aber du hast natürlich Recht, diese Infos sind nur vorhanden wenn ich QCMDEXC (und die dusseliege Längenangabe)verwende
Robi