-
Parameter empfangen in Free
Hallo,
wie schreibe ich die Parameterübergabe in Free?
Mein Programm soll die Felder
p$Iban 34a und p$Flag 1n empfangen können.
-
Gar nicht !
Entweder als PI (Prozedur-Interface) in den D-Bestimmungen oder wie bisher im festen Format mit *ENTRY PLIST.
-
Wie denkt ihr eigentlich über die Prozeduren?
Also ich finde in den Quellen meiner Kollegen kaum welche.
Ich weiß zwar noch nicht wie man sie programmiert, werde ich mich aber als nächstes damit befassen. Sie machen doch den Quellcode wesendlich einfacher zu lesen.
Vorallem find ich in RPG die globale Variablendeklaration total unübersichtlich. Soweit ich weiß, kann man dort ja ein bißchen mit Prozeduren, abhilfe schaffen.
Jetzt hatte ich z.b. eine Prüfroutine zur Prüfsummenbildung schreiben müssen. Diese sollte eine große Zahl Modulo 97 rechnen, die SubRoutine hatte ich 2 mal gebraucht. Hätte ich jetzt eine ordentliche Prozedur, hätte ich das wunderbar mit Rückgabewert und Parameterliste machen können.
Aber die Programmieren hier auch nicht in Free, bin der einzige der das macht :*(. Das wird früher oder später bestimmt noch zu problemen führen.
-
Hallo,
wenn es nur darum geht Prozeduren und Funktionen aufzurufen, das geht auch im klassischen Format.
Ohne Rückgabe-Wert mit OpCode CALLP und mit Rückgabe-Wert in Verbindung mit OpCode EVAL, IF, DO uws.
Ansonsten erfordert die moderne RPG-Programmierung eine modulare Programmierweise, für die Subroutinen, die kopiert werden einfach nichtmehr ausreichend sind. In einer hochmodularen Anwendung gibt es fast nur noch unabhängige Prozeduren/Funktionen, die z.T. nur noch aus einem oder zwei Statements bestehen und wo immer sie benötigt werden aufgerufen werden können. Wiederverwendbarkeit und einfache bzw. einmalige Änderung spielen dabei eine große Rolle.
... Und wer erstellt schon wegen 5 Statements ein Programm?
Allerdings wirst Du dabei auf Widerstand von hartgesottenen Top/Down-Programmierern stoßen. So nach dem Motto: "Wegen 20 Statements such ich doch nicht nach einer Prozedur!"
Birgitta
-
Das Programm was ich gerade schreibe sollte schon Parameter empfangen können. Da es ja am anfang der C Bestimmungen steht, habe ich das jetzt so gemacht:
c* Parameter
c *entry plist
c parm p$Iban 34
c parm p$Flag 1 0
//FREE
Danach kommt dann mein Code in Free.
Weiß nicht wie ich die Felder p$Iban und p$Flag in Free deklariere. Das eine
soll 34a und das andere eigentlich 1n sein, damit ich mit p$Flag = *on bzw mit p$Flag = *off arbeiten. Aber so gehts ja auch.
Du hast gerade mit deinem Kommentar, (moderne RPG Programme sind modular programmiert) neues interesse zum RPG lernen in mir geweckt. Ich verabscheue innerlich die alten Codes. Das was man da macht spricht irgendwie gegen alles was ich bisher gelernt habe, und die nicht eingerückten quellcodes sind extrem schlecht zu lesen. Vorallem für leute wie mich, die die sprache erst lernen müssen.
Ich habe die möglichkeit diese woche ein bis zwei stunden pro tag mir von einem Kollegen RPG zeigen zu lassen. Allerdings zeigt er mir (denk ich mal) eher sachen, die sich um das arbeiten mit unseren programmen drehen. So Tabellensteuerungen und ähnliches.
Da muss ich dann wieder in normalem RPG programmieren. Ich will nicht :*(
-
Das ist aber so mit den "Altlasten".
Neue Programme auf alten Anwendungen werden auch eher selten in ILE geschrieben, da ja doch viele Copy-Strecken für die Aufrufe, Parameterdefinitionen, Keylisten usw. existieren.
Man muss also beides können.
Was die Definition der Übergabefelder angeht, so definierst du die ganz einfach in den D-Bestimmungen als DS (falls Struktur) oder Single:
D P$IBAN S 34
D P$FLAG S 1S 0
Wichtig bei der Definition in C-Bestimmungen:
Dezimalfelder sind GRUNDSÄTZLICH gepackt !
Gezont (Typ S) geht nur in D !
-
Hallo kr1s,
zu Deiner Frage, wie wir Prozeduren finden, einfach genial!!! Ich benutze Subroutinen prinzipiell gar nicht mehr, auch wenn ich mich von Brigitta bei der common-Tagung in Kassel habe überzeugen lassen, dass sie ab und zu sinnvoll sind(*pssr, *inzsr).
Die Vorteile von Prozeduren sind einfach überzeugend. Ich habe vor kurzem eine Stücklistenauflösung in RPG programmiert, da hätte ich mir ohne Prozeduren und die Möglichkeit des rekursiven Aufrufs vermutlich die Finger gebrochen und den Verstand verknotet.
Auch das free-form-RPG finde ich super, meiner Meinung nach ist das 'C' an Stelle 7(?oder 8) nicht mehr erforderlich, es geht alles in free-form(auch wenn man ab und zu etwas basteln muss).
Wenn Du dann noch wirklich in moderner Optiki programmieren möchtest, solltest Du RSE mit dem LPEX-Editor nutzen. Ich war anfags zwar auch skeptisch, jetzt gebe ich das Toll aber nicht mehr her.
Ist auch super für alte PRG III Sourcen. Man sieht z.B. auf dem ersten Blick, welche Bezugszahlen benutzt werden und wo im Programm sie angesprochen werden. Na ja, ersteinmal genu geschwärmt.
Gruß
Alexander
Similar Threads
-
By schatte in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 21-05-08, 08:18
-
By Fucasdreh in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 10-01-07, 13:12
-
By Luebbert in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-11-06, 13:22
-
By mk in forum NEWSboard Java
Antworten: 15
Letzter Beitrag: 21-02-05, 06:54
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