[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    331
    Sagen wir es mal so, es gibt schlimmeres Erfüllt aber seinen Zweck (zur Zeit)...... allerdings wenn das Ding nicht wirklich strukturiert ist, ist es sehr mühsam, Änderungen ohne massiven Aufwand zu realisieren, zumal jedes (!!!) Programm mit bestimmten Werten daraus arbeitet.

  2. #2
    Registriert seit
    Apr 2005
    Beiträge
    385
    Schon mal über den UserSpace nachgedacht?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die LDA ist doch jederzeit als DTAARA im ILERPG zugreif- und änderbar.
    Ich verstehe daher dein Problem nicht.

    Da ich auch die LDA z.T. benutze, sichere ich mir den Inhalt ggf. beim Programmstart und stelle den Inhalt bei Programmende wieder her.
    Das kann ein Serviceprogramm nur dann leisten, wenn man diesem einen Schlüssel (Stackebene) mitgeben würde.
    Das wird aber dann doch zu kompliziert und einen einfachen Zugriff mit IN/OUT kann ich da schneller realisieren.
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ein USRSPC kann ja nur per API angesprochen werden und dieses in 1000de PGM'e einzubauen...

    Die LDA hat ja noch den weiteren Vorteil, dass sie beim SBMJOB mit kopiert wird.
    Ich denke, dass auch dieses häufig genutzt wird. Mit USRSPC's geht das wieder nicht. Hier eine Verwaltung aufzubauen ist ungleich komplizierter, da nun mal USRSPC's dann nicht in QTEMP erstellt werden können.
    Und konzeptionell müsste mal hier doch einige Überlegungen anstellen um dies Job/Aufrufebenenspezifisch zu gestalten.
    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

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Anstatt einer LDA, einer anderen Dataarea oder eines Userspaces, kann man auch folgendes machen:

    Eine Variable/Datenstruktur in einer Quelle global definieren. Die Werte können nur über eine exportierte Prozedur SETMYDS gesetzt werden und über GETMYDS ermittelt werden. Damit kann für jede Konstellation eine eigene Variable/Datenstruktur geschaffen werden, die von allen Programmen und Prozeduren verwendet werden kann. Das Service-Programm sollte in einer eigenen/benannten Aktivierungsgruppe laufen, damit alle Programme/Prozeduren innerhalb des Jobs zugreifen können.

    Birgitta
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Jul 2002
    Beiträge
    331
    Zur Erklärung:

    Bisher wird in allen möglichen CL-Programmen der LDA genutzt um zusätzliche Parameter an die Programme, z.B. den Inhalt eines Displays.....oder Job-Informationen, u.a. auch ein 1stelliger Wert, der in jedem Programm benötigt wird.
    Wenn wir jetzt aus jedem Programm den Kram ausbauen, oder umbauen, würden wir mit allen Mann einige Zeit zu tun haben, zumal andere Projekte dann liegen bleiben würden.
    Ich möchte jetzt einen Service bauen, der den LDA für das CL-Programm "befüllt" um eine Struktur in den LDA zu bekommen. Es sind 69 verschiedene Werte die dort eingetragen werden, je nach Programm mal 5, mal 10, mal 1, mal 2....... und teilweise wird Wert A an Position 15 gesetzt und aus einem anderen Programm an Position 25, usw. usw........
    Hier möchte ich einheitliche Strukturen schaffen und das alles über einen Service erledigen, der dann nach SNDRCVF aufgerufen wird und den LDA belegt, der dann von nachgelagerten Programm-Aufrufen ausgelesen werden kann.

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das ginge bereits mit einem Serviceprogramm, das diese Struktur definiert, im CL mit Set (myLDA) befüllt wird und dann an anderer Stelle mit get() die Daten holt; die in anderem Posting angesprochene HashTable ist da allerdings wesentlich flexibler, da diese keine Vereinheitlichung der Struktur voraussetzt und leichter erweiterbar ist.

    D*B

    Zitat Zitat von DEVJO Beitrag anzeigen
    Zur Erklärung:

    Bisher wird in allen möglichen CL-Programmen der LDA genutzt um zusätzliche Parameter an die Programme, z.B. den Inhalt eines Displays.....oder Job-Informationen, u.a. auch ein 1stelliger Wert, der in jedem Programm benötigt wird.
    Wenn wir jetzt aus jedem Programm den Kram ausbauen, oder umbauen, würden wir mit allen Mann einige Zeit zu tun haben, zumal andere Projekte dann liegen bleiben würden.
    Ich möchte jetzt einen Service bauen, der den LDA für das CL-Programm "befüllt" um eine Struktur in den LDA zu bekommen. Es sind 69 verschiedene Werte die dort eingetragen werden, je nach Programm mal 5, mal 10, mal 1, mal 2....... und teilweise wird Wert A an Position 15 gesetzt und aus einem anderen Programm an Position 25, usw. usw........
    Hier möchte ich einheitliche Strukturen schaffen und das alles über einen Service erledigen, der dann nach SNDRCVF aufgerufen wird und den LDA belegt, der dann von nachgelagerten Programm-Aufrufen ausgelesen werden kann.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Zitat Zitat von DEVJO Beitrag anzeigen
    Zur Erklärung:

    Bisher wird in allen möglichen CL-Programmen der LDA genutzt um zusätzliche Parameter an die Programme, z.B. den Inhalt eines Displays.....oder Job-Informationen, u.a. auch ein 1stelliger Wert, der in jedem Programm benötigt wird.
    Wenn wir jetzt aus jedem Programm den Kram ausbauen, oder umbauen, würden wir mit allen Mann einige Zeit zu tun haben, zumal andere Projekte dann liegen bleiben würden.
    Ich möchte jetzt einen Service bauen, der den LDA für das CL-Programm "befüllt" um eine Struktur in den LDA zu bekommen. Es sind 69 verschiedene Werte die dort eingetragen werden, je nach Programm mal 5, mal 10, mal 1, mal 2....... und teilweise wird Wert A an Position 15 gesetzt und aus einem anderen Programm an Position 25, usw. usw........
    Hier möchte ich einheitliche Strukturen schaffen und das alles über einen Service erledigen, der dann nach SNDRCVF aufgerufen wird und den LDA belegt, der dann von nachgelagerten Programm-Aufrufen ausgelesen werden kann.
    Du könntest eine Handvoll CL-Programme erstellen, die die übergeben Parameter an die korrekte Stelle in der LDA schreiben. Anstelle der direkten LDA-Verwendung stünde dann ein Call in der Anwendung.
    Das kostet rel. wenig Aufwand und kann sukkzessive gemacht werden.

  9. #9
    Registriert seit
    Nov 2006
    Beiträge
    102
    Zitat Zitat von cbe Beitrag anzeigen
    Du könntest eine Handvoll CL-Programme erstellen, die die übergeben Parameter an die korrekte Stelle in der LDA schreiben.
    Ich finde eine starre Struktur für die LDA eher hinderlich. Ich würde ein flexibles Schema aufbauen, wie z.B.:
    Val1:XYZ;Val5:123;Val17:Abcd;
    Dazu ein paar Service-Funktionen nach dem Muster MyVar=LdaGet(Val5), LdaPut(Val1:MyVar) usw.
    Die maximal 1024 Zeichen sind schnell geparst oder neu aufgebaut und auf diese Weise kannst Du Dir ein System aufbauen, das wesentlich mehr Möglichkeiten bietet als eine vorgegebene Struktur.

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... dieser Aufruf muss dann schon in geeigneter Form die Informationen enthalten, die global verfügbar sein sollen. Von dem Service aus ist selbst dann nicht an die Informationen dran zu kommen, wenn die Namen der Variablen und deren Bedeutung konsistent wäre - in letzterem Fall könnte man allenfalls noch mit in das CL reingenerierten Code nochwas ausrichten.

    D*B

    Zitat Zitat von DEVJO Beitrag anzeigen
    Hier möchte ich einheitliche Strukturen schaffen und das alles über einen Service erledigen, der dann nach SNDRCVF aufgerufen wird und den LDA belegt, der dann von nachgelagerten Programm-Aufrufen ausgelesen werden kann.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Jul 2002
    Beiträge
    331
    Ich werde das Ergebniss posten, wenn fertig

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •