-
Trigger Programm ändern
Hallo *all,
besteht die Möglichkeit Bibliotheksname der Auslöser- bzw. Triggerprogramm zu ändern?
-
 Zitat von svit
Hallo *all,
besteht die Möglichkeit Bibliotheksname der Auslöser- bzw. Triggerprogramm zu ändern?
Reden wir über SQL oder System Trigger?
System Trigger Programme können natürlich geändert und ausgetauscht werden. Allerdings können diese nur dann ausgetauscht werden, wenn die Tabelle/Datei für die sie registriert sind nirgends im Zugriff sind, d.h. es werden Exklusiv-Rechte benötigt.
In SQL Triggern wird die Bibliothek (zumindest für den unqualifizierten Datenzugriff) zum Erstellungszeitpunkt ermittelt und in das Routine-Objekt integriert. Sofern Bibliotheken innerhalb der Quelle verändert werden müssen, muss der Trigger neu erstellt werden. Auch hierfür werden Exklusiv-Rechte benötigt.
Birgitta
-
ich habe programmtrigger
in der Dateibeschreibung steht Bibliotheksname wo das Triggerprogramm stand. Jetzt möchte ich nur die Bibliotheksname ändern.
-
...
vergesen
natürlich greift keiner auf die Dateien zu , ich habe alle rechte.
-
 Zitat von svit
...
vergesen
natürlich greift keiner auf die Dateien zu , ich habe alle rechte.
Darauf zugreifen, heißt, dass zu dem Zeitpunkt an dem das Trigger-Programm ausgetauscht wird kein anderer Job die Datei im Zugriff haben darf, d.h. es darf kein Programm laufen das die Datei verwendet, keine SQL-Abfrage ausgeführt werden, es darf noch nicht einmal ein ODP (Open Data Path) auf die Datei offen sein.
Du kannst ja mal versuchen ob Du Dir mit dem CL-Befehl ALCOBJ die Datei zur exklusiven Verwendung (Sperrstatus *EXCL) deinem Job zuordnen kannst.
... und Du kannst nur das "alte" Trigger-Programm abhängen (CL-Befehl RMVPFTRG) und das "neue" Trigger-Programm anhängen (CL-Befehl ADDPFTRG)
... dass das Ganze so kompliziert ist, ist gewollt so! Schließlich soll ein Trigger zur Datenkonistenz beitragen und wenn jeder Hinz- und Kunz zu jeder Zeit einen Trigger aktivieren, deaktivieren und austauschen könnte, wäre eben genau die Datenkonsistenz sonstwo!
Birgitta
-
aktivieren und deaktivieren kann man jeder zeit(chgpftrg)
deswegen dachte ich auch libl-name zuändern wurde auch ohne abhängen und anhängen gehen.
-
Das geht deswegen nicht, da der alte Trigger entfernt und der neue hinzugefügt werden muss.
Für das System ist das ja auch ein ganz anderes Programm.
-
-
 Zitat von fabax
Hallo svit,
es gibt für alles eine Lösung  auch für dein Problem mit den Programmtriggern. Zumindest hab ich für mich eine Lösung gefunden.
Ich nenne das "indirektes Triggern"  und funktioniert wenn man einige Dinge beachtet einwandfrei.
Im Prinzip geht das so.
- an dieses Programm wird die komplette PF-Triggerdatenstruktur als Parameter übergeben. In diesem Prog kannst Du dann machen was Du willst. Das Programm läßt sich dadurch jederzeit An- und Abschalten oder auch Verändern und an neue Erfordernisse anpassen, ohne das Du das System exlusiv benötigst. Einfach TriggerDatenberisch auf "0", und das war's. Natürlich ist der eigentliche Trigger noch aktiv, aber er tut nichts mehr.
- Ich habe diese Vorgehensweise dann auch noch mit einer Datenwarteschlange gekoppelt. Ich verliere damit keine "Events" während mein Trigger "deaktiviert" ist.
Das System läuft "LIVE" auf mehreren ERP Systemen bei Kunden, die teilweise pro Tag 2Mio Transaktionen  haben.
schönen Abend noch
FX
..noch was... dies geht natürlch nicht mit RPGdreiiiii wegen der Parameterlänge von Strings, aber das benützt ja eh keiner mehr laut EiBiÄm . nimm einfach freeRPG
-
 Zitat von fabax
..noch was... dies geht natürlch nicht mit RPGdreiiiii  wegen der Parameterlänge von Strings, aber das benützt ja eh keiner mehr laut EiBiÄm  . nimm einfach freeRPG 
Dass, das nicht mit RPGIII geht würde ich nicht so sehen (auch wenn man das heute nicht mehr verwenden sollte)! Auch bei RPGIII wird beim Programmaufruf nur Pointer übergeben werden. Wird ein Pointer auf den Trigger-Buffer übergeben und dieser an ein weiteres Programm übergeben, hat auch dieses Programm den Triggerbuffer im Zugriff. Mittels Substring und/und (externen) Datenstrukturen kann auf den Datensatz zugegriffen werden (zumindest haben wir das früher so bzw. so ähnlich gemacht!)
Birgitta
Similar Threads
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 02-04-12, 16:46
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 13-05-09, 19:50
-
By dd3tj in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 26-07-07, 07:40
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By stefan in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 01-08-02, 13:06
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