[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    10

    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.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Gar nicht !

    Entweder als PI (Prozedur-Interface) in den D-Bestimmungen oder wie bisher im festen Format mit *ENTRY PLIST.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    10
    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.

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Aug 2006
    Beiträge
    10
    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 :*(

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    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 !
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jun 2004
    Beiträge
    69
    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

  1. Nachricht CPA4262 empfangen bei Befehl SAVLIB
    By schatte in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 21-05-08, 08:18
  2. Frei Porn Site!
    By Fucasdreh in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 10-01-07, 13:12
  3. SNDDST Parameter für Dateianhänge
    By Luebbert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-11-06, 13:22
  4. Aufruf Java Pgm mit Entry Parameter
    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
  •