-
Ist es möglich
das ich aus einem Service Programm auf Variablen aus einem CLLE Programm zugreifen kann, ohne sie alle als Parameter zu übergeben? Gibt es irgendeinen Weg?
-
ich nehme an an LDA oder sowas hast Du schon gedacht?
-
... wohl nicht - zum Glück
D*B
Zitat von DEVJO
das ich aus einem Service Programm auf Variablen aus einem CLLE Programm zugreifen kann, ohne sie alle als Parameter zu übergeben? Gibt es irgendeinen Weg?
-
Genau darum gehts mir.
Es wird in 1000 (ca.) Programmen der LDA gesetzt, ausgelesen, usw. und zwar immer an unterschiedliche Positionen verschiedene Werte.
Dies möchte ich nun über einen Service machen, der sämtliche Funktionen um den LDA übernimmt. Um eventuelle Änderungen am LDA dann zentral zu haben und nicht mehr in diversen Programmen nachzuziehen, was uns derzeit einige dringende Änderungen blockiert.
Um dann irgendwann einmal den LDA komplett abzulösen.
-
sorry, dass ich das erwähnt habe ich persönlich mag die LDA auch nicht, aber in manchen Konstellationen kann es ja geschickt sein.
-
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.
-
Schon mal über den UserSpace nachgedacht?
-
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.
-
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.
-
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.
-
... das ist was ganz anderes, da gibt es bei meinen OpenSource Klamotten eine HASHTABLE, das ist ein Serviceprogramm das nach Art einer Java HashTable set und get Procedures für Namensvariablen hat. Schau dir das mal an...
D*B
Zitat von DEVJO
Genau darum gehts mir.
Es wird in 1000 (ca.) Programmen der LDA gesetzt, ausgelesen, usw. und zwar immer an unterschiedliche Positionen verschiedene Werte.
Dies möchte ich nun über einen Service machen, der sämtliche Funktionen um den LDA übernimmt. Um eventuelle Änderungen am LDA dann zentral zu haben und nicht mehr in diversen Programmen nachzuziehen, was uns derzeit einige dringende Änderungen blockiert.
Um dann irgendwann einmal den LDA komplett abzulösen.
-
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
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