Anmelden

View Full Version : DDS in ILE RPG



Seiten : 1 2 3 4 [5] 6 7 8 9

Squall
12-09-06, 17:06
Jajajaja,

und dann die F10 und dann Rückwärtsblättern und dann lesen was da so steht.

Sach mal, sucht Ihr noch Leute?

:-)

k.

ah...Sry tut mir Leid... :( Vielen Dank für deine Hilfe.

Hab grad das Programm nochmal laufen lass und plötzlich gehts... hab diesmal in meiner DDS->DDS meinen Testsatz stehn...Fragt mich bitte nicht wie und warum habe gerade nur mit den jobs herumhantiert.

Squall
14-09-06, 16:32
Hallo,

ich muss euch leider nochmal mit einer Frage belästigen. Es geht um den Aufruf meines CL Programms.
Ich ruf das Programm damit auf:


CALL PGM(DDSTEST) PARM('DOMMZO/TESTD' 'TESTD' 'TEST' 'TESTM' ' A ANFINR 2P 0 TEXT(''FIRMA'')' 0001.00 060914

Das Programm sieht so aus:

PGM PARM(&FILE &MBR &TEXTF &TEXTM &SRCDTA &SRCSEQ &SRCDAT)

DCL VAR(&SRCDTA) TYPE(*CHAR) LEN(80)
DCL VAR(&SRCSEQ) TYPE(*DEC) LEN(6 2)
DCL VAR(&SRCDAT) TYPE(*DEC) LEN(6)
DCL VAR(&FILE) TYPE(*CHAR) LEN(20)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&TEXTF) TYPE(*CHAR) LEN(20)
DCL VAR(&TEXTM) TYPE(*CHAR) LEN(20)
CRTSRCPF FILE(&FILE) TEXT(&TEXTF)
ADDPFM FILE(&FILE) MBR(&MBR) TEXT(&TEXTM) SRCTYPE(PF)
OVRDBF FILE(&FILE) TOFILE(&FILE) +
MBR(&MBR) OVRSCOPE(*JOB)
CALL PGM(DDSWRITE) PARM(&FILE &MBR &SRCDTA &SRCSEQ &SRCDAT)
DLTOVR FILE(&FILE) LVL(*JOB)
ENDE: RETURN

ENDPGM

Ich bekomme einen Error( (C D I R) CPF0001 von DDSTEST bei 1000 empfangen. ) beim CRTSRCPF.

Ursache . . . . : Das CL-Programm DDSTEST in Bibliothek DOMMZO hat einen
Fehler bei Anweisung 1000 festgestellt. Der Nachrichtentext für CPF0001 ist:
Fehler in Befehl CRTSRCPF gefunden..
Habe schon versucht meinen Aufruf zu verändern mit ' ohne etc. aber der Fehler bleibt. Wenn ich den CRTSCRPF so ausführe und die Werte per Hand eintrage funktioniert alles einwandfrei. Wo liegt denn mein Fehler? :(

Danke für die Hilfe im Vorraus.

Gruß

Martin

kuempi von stein
14-09-06, 16:40
same procedure as every time....

Die Fehlermeldung VOR CPF0001 ist die, die interessant ist.
Also im Jobprotokoll F10 drücken und zurückblättern.

So mal ganz ohne Wertung vermute ich btw. den Fehler im Parameter FILE!
Die Felder würde ich einzeln übergeben.

k.

Squall
14-09-06, 16:51
Das sagter:

Wert 'DOMMZO/TES' als Name für Parameter FILE ungültig.
Fehler in Befehl CRTSRCPF gefunden.
Funktionsprüfung. CPF0001 nicht überwacht durch DDSTEST bei Anweisung
1000, Instruktion X'0012'.

Ist mein übergebener Wert zu lang da er abgeschnitten wird? Ist das der Fehler?

EDIT: Fehler behoben. Danke!

Squall
15-09-06, 10:39
Hallo,

ich hätte noch eine Frage. Und zwar bekomme ich einen Dezimaldatenfehler beim Programmaufruf. Ich übergebe die Daten so:
CALL PGM(DOMMZO/DDSTEST) PARM(ABC DOMMZO TEST TESTF TESTM 'A ZB
FNAM 8A' 0001 060915)

Definition und Zuweisung:


DSRCSEQ 6 2
DSRCDAT 6 0
DSRCDTA 80

C *entry plist
C parm MyFile 10
C parm MyLib 10
C parm MyMbr 10
C parm DTA 80
C parm SEQ 6 2
C parm DAT 6 0

C eval srcseq = seq
C eval srcdat = dat
C eval srcdta = dta


Wobei ich bei srcseq sowie srcdat einen Fehler bekomme. Habe es schon mit der Übergabe von 0001 ; 0001.00; 0001,00 probiert - nichts funktioniert. Wie müsste ich dir Werte übergaben damit ich diesen Fehler umgehe?

Gruß Martin

kuempi von stein
15-09-06, 11:19
*seuftz*

Ist das eine Prüfungsarbeit?

Parameterübergabe im Zusammenhang mit CL/RPG ist immer ein Problem, wenn numerisch bei ist.

Ich persönlich würde da entweder vorher von numerisch nach Alpha wandeln und dann den Alpha im Programm wieder zurück...
oder...
mal versuchen die numerischen als Hexwerte zu übergeben, als für 0001 wäre das X'00001F' oder so.

k.

Fuerchau
15-09-06, 12:10
Suche hier im Forum mal nach "CALL" und "PARAMETER".
Deine Zahlen werden als dec(15,5) übergeben, du erwartest aber dec(6,2) und dec(6,0).

Also entweder per CLP mit korrekt definierten Variablen aufrufen oder (wie kuempi schon sagte) direkt in Hex für das gepackte Format.

Squall
15-09-06, 12:40
Danke für eure Hilfe, ich hoffe ich nerve euch nicht zu sehr mit meinen Fragen.

Habs so gelöst:

Mein CL Programm erwartet 2 Char Werte die 6 Zeichen lang sind. Alles wird so zum RPG Programm übertragen und dort via MOVE in die Nummerfelder geschoben. Funktioniert soweit.

Gruß Martin

kuempi von stein
15-09-06, 12:54
...ich hoffe ich nerve euch nicht zu sehr mit meinen Fragen....

Ach, nicht wirklich.
Im Gegenteil.
Ich persönlich bin absolut froh über jeden Neueinsteiger in diesem Bereich.
Um so mehr um so besser.

Jede weitere Ressource im AS/400-Bereich (oder I5 oder wie se nun auch immer gerade heisst) sichert ja im Endeffekt meinen Arbeitsplatz evtl.

Wenns umgekehrt wäre, würde es ja schlecht aussehen für solche Dinos wie mich.

Allerdings würde ich mir von einigen Firmen mehr Einsatz z.B. im Bereich Schulung usw. wünschen.

Wenn ich was zu sagen hätte, würde ich jeden auf jede Schulung schicken die es gibt.
Und dann regelmässig nachbessern lassen.

Leider siehts ja meistens genau andersrum aus.

k.

Squall
15-09-06, 13:40
Ach, nicht wirklich.
Im Gegenteil.
Ich persönlich bin absolut froh über jeden Neueinsteiger in diesem Bereich.
Um so mehr um so besser.

Jede weitere Ressource im AS/400-Bereich (oder I5 oder wie se nun auch immer gerade heisst) sichert ja im Endeffekt meinen Arbeitsplatz evtl.

Wenns umgekehrt wäre, würde es ja schlecht aussehen für solche Dinos wie mich.

Allerdings würde ich mir von einigen Firmen mehr Einsatz z.B. im Bereich Schulung usw. wünschen.

Wenn ich was zu sagen hätte, würde ich jeden auf jede Schulung schicken die es gibt.
Und dann regelmässig nachbessern lassen.

Leider siehts ja meistens genau andersrum aus.

k.

Ich hatte bisher wenig mit der AS400/i5(sowie deren Programmierung CL, RPG, VARPG) zu tun und arbeite mich zz selbstständig ein. Was mich angeht bin ich ein wirklicher Frischling, gerade mit der Ausbildung fertig geworden und jetzt im Berufsalltag. :D
Und die As400 kann man irgendwie mit kaum bzw mit keinem anderen System vergleichen.