-
Mehrfach Datenstruktur
Hallo,
ich kämpfe mit der Übergabe von Mehrfachdatenstrukturen mittels Procedure. Die sieht folgendermaßen aus:
D VeDs1 DS Qualified Dim(10)
D Fl1 5
D Ve1 LikeDs(IntVeDs) Dim(%Elem(IntVeDs))
D*
D IntVeDs DS Dim(10) Qualified
D VeNumbers1 6 0 Dim(1000)
D VeValues1 13 4 Dim(1000)
Der Aufruf erfolgt so:
C callp getFlVeValues(einFa:einObj:einObja:einObjg: K_VESCHP
C einJahr:einMonat:Veds1)
Also "VeDs1" wird mitgeschickt.
Jetzt bekomme ich beim Kompilieren den Fehler
*RNF5407 20 412 012700 Mehr Parameter im Prototypaufruf übergeben als zulässig.
Heisst das, ich kann eine so große Anzahl von Parametern so nicht übergeben ?
-
Wie sieht den der Prototyp zu der Prozedur aus?
Birgitta
-
Hallo,
der Prototyp sieht so aus:
D getFlVeValues PR
D p#fa 2 0 value
D p#obj 7 0 value
D p#objA 1 0 value
D p#objG 1 0 value
D p#jahr 4 0 value
D p#monat 2 0 value
D p#VeDs DS Qualified dim(10)
D Fl 5
D Ve LikeDs(VeDs) Dim(10)
D*
D VeDs DS Qualified
D p#VeNumbers 6 0 Dim(1000)
D p#VeValues 13 4 Dim(1000)
Lg Christian
-
Die Datenstruktur ist nicht als Parameter-Feld, sondern als eigenständige Datenstruktur definiert.
Du must im Prototypen die Datenstruktur mit LIKEDS und Dim Definieren, jedoch ohne DS!
Birgitta
-
Meinst du die ganz DS ab p#VeDs ?
So:
p#VeDs Likeds(i#VeDs) Dim(10)
i#VeDs Ds Qualified dim(10)
Fl 5
Ve LikeDs(VeDs) Dim(10)
VeDs Ds Qualified
p#VeNumbers 6 0 Dim(1000)
p#VeValues 13 4 Dim(1000)
-
Du musst Referenz-Datenstrukturen bilden, die in die Copy-Strecke in der der Prototyp integriert wird eingebunden werden.
Die Dimension (Schlüssel-Wort DIM()) wird aus einer Referenz-Struktur nicht übernommen, sonder muss explizit im Prototypen bzw. Procedure Interfache angegeben werden. Deshalb habe ich in dem Beispiel die Referez-Struktur RefVEDS auch ohne Dimension definiert.
Etwa so:
Code:
D getFlVeValues PR
D p#fa 2 0 value
D p#obj 7 0 value
D p#objA 1 0 value
D p#objG 1 0 value
D p#jahr 4 0 value
D p#monat 2 0 value
D p#VEDS LikeDS(RefVeDS) Dim(10)
* Definition von Referenz-Datenstrukturen
* Template (ab 6.1) = Verwendung nur zur Compile-Zeit
D RefVeDs DS Qualified Template
D Fl 5
D Ve LikeDs(RefVeDs) Dim(10)
D RefVeDs DS Qualified Template
D p#VeNumbers 6 0 Dim(1000)
D p#VeValues 13 4 Dim(1000)
In der Procedure mit dem Procedure Interface ist die Definition der Datenstruktur nicht erforderlich, da über den Prototypen/Procedure Interface definiert.
In den rufenden Prozeduren muss eine (locale) Datenstruktur über LIKEDS basierend auf der Referenz-Struktur (Template!) definiert werden.
Birgitta
-
Template kenne ich noch nicht. Wenn ich richtig nachgelesen habe, sind diese Variablen oder Datenstrukturen nicht als Programmvariablen verwendbar.
Wie greife ich jetzt auf die Feldgruppe p#VeNumbers zu?
eval p#VeDs(#2).Ve.p#VeNumbers = ....
bringt mir einen Fehler:
RNF7591: An operand of a qualified name expression is not valid.
-
Die Namen der Parameter ("Variablen") im Prototype sind nur Schein.
Der Prototype dient jediglich als Definition.
Du könntest beim Prototype auch die Namen ganz weg lassen und nur die Datentypdefinitionen stehen lassen.
Ich fürchte, dass hier ein paar Grundlagen fehlen.
Es wäre sicher nicht schlecht wenn du dir ein Redbook her nimmst oder eine ILE RPG Schulung investierst.
Sonst kommst du schnell zum nächsten Problem.
(Nur ein Tipp von mir )
lg Andreas
-
 Zitat von andreaspr@aon.at
Die Namen der Parameter ("Variablen") im Prototype sind nur Schein.
Der Prototype dient jediglich als Definition.
Du könntest beim Prototype auch die Namen ganz weg lassen und nur die Datentypdefinitionen stehen lassen.
Ich fürchte, dass hier ein paar Grundlagen fehlen.
Es wäre sicher nicht schlecht wenn du dir ein Redbook her nimmst oder eine ILE RPG Schulung investierst.
Sonst kommst du schnell zum nächsten Problem.
(Nur ein Tipp von mir  )
lg Andreas
Danke für deinen tollen Tipp. Wenn ich die Zeit habe ein Redbook durchzulesen, hätte ich mich nicht ans Forum gewandt.
In der Zeit, hättest du - falls du es überhaupt weißt - auch die richtige Eval-Lösung schreiben können.
Übringens, so gehört es:
eval p#VeDs(#2).Ve(#2).p#VeNumbers = ....
-
Danke für deinen tollen Tipp. Wenn ich die Zeit habe ein Redbook durchzulesen, hätte ich mich nicht ans Forum gewandt.
In der Zeit, hättest du - falls du es überhaupt weißt - auch die richtige Eval-Lösung schreiben können.
Genau dafür ist dafür ist das Forum da und glaub mir, es nehmen sich viele Leute sich Zeit (unentgeltlich!) die Fragen zu analysieren und Lösungen vorzuschlagen.
Ich denke, Du solltest deinen Ton überdenken, ansonsten das Redbook schnell der letzte Helfer sein wird.
kf
-
 Zitat von camouflage
Genau dafür ist dafür ist das Forum da und glaub mir, es nehmen sich viele Leute sich Zeit (unentgeltlich!) die Fragen zu analysieren und Lösungen vorzuschlagen.
Ich denke, Du solltest deinen Ton überdenken, ansonsten das Redbook schnell der letzte Helfer sein wird.
Du solltest deinen Beitrag nochmals schreiben, denn ich kenne mich überhaupt nicht aus. Oder besser, du schreibst mir eine PN, weil diese persönlichen Einträge niemanden interessieren. Und bitte aus jetzt, das ist alles Themenverfehlung.
-
 Zitat von beegee
Danke für deinen tollen Tipp. Wenn ich die Zeit habe ein Redbook durchzulesen, hätte ich mich nicht ans Forum gewandt.
In der Zeit, hättest du - falls du es überhaupt weißt - auch die richtige Eval-Lösung schreiben können.
Zum einen gab ich dir für eines deiner Probleme einen Tipp und zum anderen solltest du den Rat von camouflage zu herzen nehmen.
Hier im Forum versuchen wir soweit es geht zu helfen.
Doch du wirst hier nicht viel Erfolg haben wenn du solch einen Ton angiebst!!
Similar Threads
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 25-02-13, 11:57
-
By JP in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 09-08-06, 08:35
-
By Bratmaxxe in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 24-07-06, 13:25
-
By Schorsch in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 09-12-05, 13:58
-
By coolie in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 06-05-04, 14:51
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks