PDA

View Full Version : Menü via CL erstellen



Bodo Roggenkamp
19-10-07, 12:27
Hallo,

ich versuche, ein Menü via CL-PGM zu generieren. Dabei gibt es grössere Probleme.

Hier die Quelle:

PGM
CRTDSPF FILE(XXX/TEST)

DLTMSGF MSGF(XXX/TEST)
MONMSG MSGID(CPF0000)
CRTMSGF MSGF(XXX/TEST)

CRTMNU MENU(XXX/TEST) TYPE(*DSPF) +
CMDLIN(*SHORT) DSPKEY(*NO) CURLIB(*NOCHG) + PRDLIB(*NOCHG) REPLACE(*YES) DLTOVR FILE(*ALL)

ENDPGM

Folgende Objekte werden auch erstellt:

Objekt Art Bibliothek Attribut

TEST *MSGF XXX
TEST *FILE XXX DSPF
TEST *MENU XXX DSPF


Nach dem Aufruf: GO MENU(XXX/TEST) erscheint dann folgende Fehlermeldung:

Nachrichten-ID . . . . : CPD6ADF Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 07.10.19 Sendezeit . . . . . . : 11:57:35

Nachricht . . . : Bildschirmdatei TEST darf nicht von Menü verwendet werden.
Ursache . . . . : Für Bildschirmdatei TEST in Bibliothek XXX ist kein separater Bezugszahlenbereich definiert. Bildschirmatei TEST wird von Menü TEST in Bibliothek XXX verwendet. Für Bildschirmdateien, die von Menüs
verwendet werden, muss ein separater Bezugszahlenbereich definiert sein.
Fehlerbeseitigung: Definition der Bildschirmdatei so ändern, dass ein separater Bezugszahlenbereich definiert wird. Hierzu Schlüsselwort INDARA in den Datendefinitionsspezifikationen für die Bildschirmdatei angeben.

=> wird das Menü über SDA erstellt, funktioniert alles einwandfrei. Und in der MNUDDS ist standardmäßig INDARA vorgegeben.

Ich möchte erreichen, dass ich eine QMNUSRC via CL auslese und anhand der MNUDDS die Menüs generiere.
Weiß jemand Rat?

Gruß
Bodo

Fuerchau
19-10-07, 12:31
SDA erstellt doch ein Beispiel.
Nimm die DDS-Quelle des Menüs als Basis und baue deine Quelle genau so auf.

Bodo Roggenkamp
19-10-07, 12:35
Hallo Baldur,

dass ist nicht das Problem. Die Quellen wurden über SDA erstellt. Nun sollen in einer anderen Umgebung die Menüs mit den SDA-Quellen generiert werden. Und das möchte ich im CL automatisieren.

Gruß
Bodo

webmicky400
19-10-07, 15:06
Hallo,
alles richtig gemacht.
Fehler liegt ziemlich sicher daran,
dass ein ANDERES DSPF-Objekt mit dem Namen TEST
zum Erstellungszeitpunkt in einer anderen Bibliothek(die sich auch in der Libliste befinden) existiert.
Also zuerst mit WRKOBJ prüfen, wo überall TEST rumschwiert.

Viel Glück.

Bodo Roggenkamp
22-10-07, 09:05
Hallo,

es ist kein Problem mit gleichen Objekten in verschiedenen Bibliotheken, dass kann absolut ausgeschlossen werden.

Problem hat eine andere Ursache. Trotzdem Danke.
Vielleicht hat ja noch jemand eine Idee???

Gruß
Bodo

Fuerchau
22-10-07, 10:16
WICHTIG:
Die DSPF muss als Satzformat den namen der DSPF enthalten.
Prüfe das bei deiner Generierung !

Bildschirmdatei (DSPF) - Hilfetext

Gibt die Bildschirmdatei an, die zum Erstellen des
Menüobjekts verwendet werden soll. Die Bildschirmdatei muß
ein Satzformat enthalten, das denselben Namen hat wie die
Bildschirmdatei selbst (genannt Menüformat). In der Datei
können ebenfalls Hilfeformate enthalten sein.

kuempi von stein
22-10-07, 10:46
Alles sehr merkwürden....

Wir machen unsere Menüs mit nem eigenen CLP und das funktioniert supi.

Also laut Handbuch wären die Erstellungbefehle für Deinen Fall wie folgt:


CRTDSPF FILE(PERLIB/PERSMENU) +
SRCFILE(USERLIB/SFPERS) +
DFRWRT(*NO) +
RSTDSP(*NO)

CRTMSGF MSGF(PERLIB/PERSMENU) +
TEXT('Message file of commands for menu PERSMENU.')

CRTMNU MENU(PERLIB/PERSMENU) TYPE(*DSPF) DSPF(*MENU) +
MSGF(*MENU) DSPKEY(*NO) CMDLIN(*LONG) +
TEXT('Personnel menu')


Versuch das mal genauso, nur eben die Namen der LIB und des Objektes ersetzen.

Wenn Du schreibst dass bei Umwandlung durch automatik das funktioniert, dann prüfe doch mal die Umwandlungsliste, was da genau für Parameter gezogen werden.

kuempi

Bodo Roggenkamp
22-10-07, 10:48
Wie schon erwähnt, sind die Quellen Original, also über SDA erstellt worden. Keine manuellen Änderungen vorgenommen. Die Quellen sind abolut einwandfrei.

Objekte werden ja auch erstellt, aber Verwendung klappt nicht (siehe Fehlermeldung im Beitrag oben)

Gruß
Bodo

(Nachsatz: Dies ist die Antwort auf die letzte Antwort von Baldur)

Bodo Roggenkamp
22-10-07, 13:01
Hallo Kuempi,

nachdem ich Dein Handbuchzitat:

CRTDSPF FILE(PERLIB/PERSMENU) +
SRCFILE(USERLIB/SFPERS) +
DFRWRT(*NO) +
RSTDSP(*NO)

geringfügig erweitert habe,

CRTDSPF FILE(&SRCLIB/&MLNAME) +
SRCFILE(&SRCLIB/&PFSRC) SRCMBR(&MLNAME) +
TEXT(&MLMTXT) RSTDSP(*NO) DFRWRT(*NO)

funktioniert es einwandfrei.

Problem ist gelöst. Besten Dank an alle :)

Gruß
Bodo

Fuerchau
22-10-07, 13:10
Also ich kann deinen Fehler leider nicht nachvollziehen.
Ich habe mir per SDA ein Menü generieren lassen.
Habe dann die Quellenart auf DSPF umgestellt (was den CRTDSPF nicht interessiert) und manuell die Texte geändert.
Anschließend per CRTDSPF und CRTMNU die Objekte erstellt.
Per GO MTEST kann ich das Menü problemlos aufrufen.

Dann habe ich die DSPF-Quelle kopiert, den Namen des Satzformates angepasst, eine MSGF erstellt und wiederum CRTDSPF und CRTMNU aufgerufen.

Der Aufruf von MTEST2 klappt nun auch.

Ich weiß also nicht, was du da wo falsch machst.