Neuerungen bei IBM i 7.5

In diesem Abschnitt finden Sie Informationen zu neuen oder erheblich geänderten Informationen für die Themensammlung zur Steuersprache.

Beginn der Änderung

Ausdrücke als Parameter zulassen, die im Parameter PARM für den Befehl Call (CALL) übergeben werden

Für einen Call (CALL) -Befehl, der von einer kompilierten ILE CL-Prozedur ausgegeben wird, können Sie jetzt Ausdrücke als Parameter angeben, die an die Parameter PARM übergeben werden.

Im folgenden Beispiel wird eine CL-Zeichenvariable als erster Parameter und ein numerischer Ausdruck als zweiter Parameter angegeben, der für den Befehl CALL (Aufruf) übergeben wurde.

DCL        VAR(&CMD) TYPE(*CHAR) LEN(50)

CHGVAR     VAR(&CMD) VALUE('call lib1/mypgm1')
CALL PGM(QSYS/QCMDEXC) PARM(&CMD %checkr(' ' &CMD))

Typ und Länge für die Parameter zulassen, die im Parameter PARM für den Befehl Call (CALL) übergeben werden

Für einen Call (CALL) -Befehl, der von einer kompilierten ILE CL-Prozedur ausgegeben wird, können Typ und Länge explizit angegeben werden, wenn die übergebenen Parameter Konstanten oder Ausdrücke sind, um anzugeben, wie die Parameter an das aufgerufene Programm übergeben werden.

Im folgenden Beispiel wird ein numerischer Ausdruck als erster Parameter und ein Zeichenausdruck als zweiter Parameter für den Befehl Call (CALL) angegeben. Art und Länge werden für jeden Parameter angegeben, um anzugeben, wie die Parameter an das aufgerufene Programm übergeben werden.

DCL        VAR(&VAR1) TYPE(*INT) LEN(4) VALUE(1)
DCL        VAR(&VAR2) TYPE(*INT) LEN(4) VALUE(2)
DCL        VAR(&VAR3) TYPE(*CHAR) LEN(10) VALUE('sample')
DCL        VAR(&VAR4) TYPE(*CHAR) LEN(10) VALUE('01')

CALL       PGM(LIB1/MYPGM1) +
           PARM(((&VAR1 + &VAR2) (*INT 4)) +
                ((&VAR3 *TCAT &VAR4) (*CHAR 50)))
MYPGM1:
PGM        PARM(&ARG1 &ARG2)
DCL        VAR(&ARG1) TYPE(*INT) LEN(4)
DCL        VAR(&ARG2) TYPE(*CHAR) LEN(50)
...

Für einen Call (CALL) -Befehl, der interaktiv ausgeführt wird, können Typ und Länge explizit für die übergebenen Parameter angegeben werden, um anzugeben, wie diese Parameter an das aufgerufene Programm übergeben werden.

Im folgenden Beispiel eines interaktiven Aufrufs werden Typ und Länge für jeden Parameter angegeben.


===> CALL PGM(LIB1/MYPGM1) PARM((3 (*INT 4)) ('sample01' (*CHAR 50)))

Für einen Call (CALL) -Befehl, der für den Parameter CMD eines Submit Job (SBMJOB) -Befehls angegeben wird, der von einer kompilierten ILE CL-Prozedur ausgeführt wird, können Typ und Länge auch explizit angegeben werden, wenn die übergebenen Parameter CL-Variablen sind, um anzugeben, wie die Parameter an das aufgerufene Programm übergeben werden.

Im folgenden Beispiel eines übergebenen Befehls CALL werden Art und Länge für CL-Variablen angegeben, die als Parameter übergeben werden. Art und Länge der CL-Variablendeklarationen werden ignoriert.

DCL        VAR(&VAR1) TYPE(*DEC)  LEN(5 2) VALUE(3)
DCL        VAR(&VAR2) TYPE(*CHAR) LEN(10)  VALUE('sample01')

SBMJOB     CMD(CALL PGM(LIB1/MYPGM1) PARM((&VAR1 (*INT 4)) +
                                          (&VAR2 (*CHAR 50)))) +
                                     LOG(4 0 *SECLVL)

Ausdrücke als Parameter zulassen, die im Parameter PARM für den Befehl Call Bound Procedure (CALLPRC) übergeben werden

Für einen Call Bound Procedure (CALLPRC) -Befehl, der von einer kompilierten ILE CL-Prozeduren abgesetzt wird, können Ausdrücke als Parameter angegeben werden, die an die PARM-Parameter übergeben werden.

Im folgenden Beispiel wird die integrierte Funktion %SIZE als erster Parameter angegeben, der für den Befehl Call Bound Procedure (CALLPRC) übergeben wird.

DCL        VAR(&PTR) TYPE(*PTR)
DCL        VAR(&BASED_DATA) TYPE(*CHAR) STG(*BASED) +
             LEN(16) BASPTR(&PTR)

/* allocate 16 bytes of storage from the heap */
CALLPRC    PRC('malloc') +
           PARM((%SIZE(&BASED_DATA) *BYVAL (*int 4))) +
           RTNVAL(&PTR)
/* set the allocated storage */
CHGVAR     VAR(&BASED_DATA) VALUE('abcdefghijklmnop')
SNDPGMMSG  MSG(&BASED_DATA)
/* deallocate storage */
CALLPRC    PRC('free') PARM((&PTR *BYVAL))

Typ und Länge für die Parameter zulassen, die im Parameter PARM für den Befehl Call Bound Procedure (CALLPRC) übergeben werden

Bei einem Call Bound Procedure (CALLPRC) -Befehl, der von einer kompilierten ILE CL-Prozedur ausgegeben wird, können Typ und Länge explizit angegeben werden, wenn die übergebenen Parameter Konstanten oder Ausdrücke sind, um anzugeben, wie die Parameter an die aufgerufene Prozedur übergeben werden.

Im obigen Beispiel werden Typ und Länge für den ersten Parameter angegeben. Dies bedeutet, dass dieser Parameter als ganze Zahl mit 4 Byte an das aufgerufene Programm übergeben werden muss.

Anmerkung: Die erweiterten Befehle Call (CALL) und Call Bound Procedure (CALLPRC) gelten nur für ILE CL.
Neue und geänderte Befehle

Mit der Suchfunktion für CL-Befehlekönnen Sie eine Liste aller neuen oder aller geänderten Befehle anzeigen.

Ende der Änderung

Kennzeichnung neuer oder geänderter Informationen

Damit Sie leichter erkennen können, an welchen Stellen technische Änderungen in diesen Informationen vorgenommen wurden, sind diese Stellen wie folgt gekennzeichnet:
  • Das Beginn der Änderung-Image, das markiert, wo neue oder geänderte Informationen beginnen.
  • Das Symbol Ende der Änderung kennzeichnet die Stelle, an der neue oder geänderte Informationen enden.

In PDF-Dateien sehen Sie unter Umständen Änderungsmarkierungen (|) am linken Rand der neuen oder geänderten Informationen.

Weitere Informationen zu Neuerungen oder Änderungen in diesem Release finden Sie im Memo an Benutzer.