[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2008
    Beiträge
    70

    Question Berechtigung CHGRPYLE für ALTER TABLE DROP COLUMN

    Ich habe eine neue Spalte in eine Tabelle hinzugefügt. Hinterher stellte ich fest, dass anstelle AUSSCHLUSS nur AUSSCHUSS herausgekommen war. Nun wollte ich natürlich den Tippfehler ausbessern...

    Versuch war ein DROP COLUMN, scheiterte jedoch mit folgendem Fehler:
    Code:
    The requested Action requires that a System Reply list entry be modified, 
    however, you do not have authority to use the CHGRPYLE command.
    Klar ist mir fehlt Berechtigung, aber kann nicht jeder Ersteller zumindest seine eigene Tabelle modifizieren?
    Hinzufügen weiterer Spalten funktioniert, Daten einfügen und die ganze Table löschen entfernen funktioniert ja auch.
    Warum nicht eine Spalte?
    --> Welche Rechte muss ich mir geben (lassen) u. v.a. wie damit ich das kann?

    Zweiter Versuch war ein RENAME COLUMN, hörte sich auch erstmal gut an, aber funktionierte für unsere V7R2 nicht.
    Code:
    ALTER TABLE G31.TG31PDIX RENAME COLUMN RECORD KEY TO RECORD KEVY;
    Speziell auf der Suche für unsere AS400 habe ich nichts mehr gefunden.

    Grüße

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Weil das Ändern oder Entfernen einer Spalte zu Datenverlust führen kann.
    Steht vielleicht CPA32B2 mit Antwort C in der Systemantwortliste?

    Ist das mit STRSQL in einem interaktiven Job?
    Was zeigt DSPJOB bei "Antwort auf Anfragenachricht"?
    Mach mal CHGJOB INQMSGRPY(*RQD) und versuch's nochmal.

  3. #3
    Registriert seit
    Sep 2008
    Beiträge
    70
    Zitat Zitat von Pikachu Beitrag anzeigen
    Ist das mit STRSQL in einem interaktiven Job?
    Was zeigt DSPJOB bei "Antwort auf Anfragenachricht"?
    Mach mal CHGJOB INQMSGRPY(*RQD) und versuch's nochmal.
    Hallo Pikachu danke für die Antwort! Nun endlich bin ich zum Testen gekommen.
    Mit interaktiven SQL über STRSQL kommt eine Abfrage (wg. Datenverlust) die ich mit I/C beantworten kann. Dann funktioniert auch das löschen.
    Über den iSeries Navigator kommt ebenfalls diese Abfrage, allerdings beim Klick auf "Ja" löschen kommt die o.g. Fehlermeldung.
    In der Systemantwortliste stand folgendes, ich konnte es allerdings nicht interpretieren:
    Code:
     
    Folge-  Nachr.-                                              Vergleichs-
     nummer  ID       Antwort     Vergleichswert                     start   
      3282   CPA32B2  I           'iSeries Navigator'                   1
    Liegt das daran, dass der iSeries Navigator nun seit der Client Access Solution "Schemas" heißt oder wo kommt dieser Vergleichswert zum Tragen?

    Müsste ich einen weiteren Eintrag hinzufügen wenn ich per Anwendung "Run SQL Scripts" ebenfalls eine Antwort "I" benötige?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Der Navigator kann Systemmeldungen nicht beantworten, daher wird der Serverjob mit INQMSGRPY(*RPYLE) o.ä. gestartet.
    Da die Antwort ja auf "I" steht, sollte es eigentlich keine weitere Meldung im Navigator mehr geben.

    Wenn der Navigator sich nun anders nennt, musst du den Serverjob mal rausfinden und dann in das Joblog nach obiger Meldung suchen und dann die Meldung im Detail ansehen. Ggf. lässt sich da der neue Name dann ableiten aus dem du dann einen neuen Eintrag zaubern darfst.

    Eigentlich sollte die IBM diesen Eintrag ebenso automatisch erstellen wie den alten.
    Wie wärs mit einer Fehlermeldung?

    Wenn du dir die Feld-Definition der Nachricht ansiehst, kannst du sehen womit der Vergleichswert verglichen wird. Ggf. ist das 1. Feld halt als Absender/Herkunft o.ä. definiert.
    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
    Sep 2008
    Beiträge
    70

    Question

    [OBSOLET] -> siehe unten die Lösung

    Hat etwas gedauert bis ich weiterforschen konnte. Also der neue Editor "Schemas" aus den IBM i Access Client Solutions bringt schon eine Meldung bei Drop-Column das Daten verloren gehen etc., jedoch bewirkt der Klick auf "Ja alle" genau soviel wie abbrechen.
    Ich habe versucht den RPLY zu erweitern und versucht den Job einzutragen. Dazu habe ich von dem laufenden Job die Infos ermittelt anhand
    Code:
    SELECT Current Client_ApplName, Current Client_ProgramID FROM SYSIBM.SYSDUMMY1
    und habe den Client_ApplName genommen. Im aktiven Job mit 10 "Jobprotokoll anzeigen" kam folgendes:
    Code:
    Job 433010/QUSER/QZDASSINIT durch ED14 geändert.                         
    Die folgenden Sonderregister wurden festgelegt: CLIENT_ACCTNG: Windows   
      10;SSL=true;admin_user=true, CLIENT_APPLNAME: IBM i Access Client      
      Solutions, CLIENT_PROGRAMID:                                           
      file:/C:/Users/Public/IBM/ClientSolutions/acsbundle.jar, CLIENT_USERID:
      ED14, CLIENT_WRKSTNNAME: GU0121.intern.local                           
    Änderung des Feldes SPALTE1 kann zum Datenverlust führen.                
    Change of file KUNDEN in ED14LIB canceled.                               
    Datei KUNDEN in ED14LIB nicht geändert.                                  
    Verarbeitung der SQL-Anweisung beendet. Ursachencode 10.
    Der Name den ich als Vergleichswert nun genommen hab, entspricht dem Client_ApplName.
    Leider ist der ApplName um zwei Zeichen "zu lang" für den Vergleichswert.
    Code:
    3282   CPA32B2  I           'iSeries Navigator'                   1
    3283   CPA32B2  I           'IBM i Access Client Solutio'         1
    Bevor ich nun lange mit dem Vergleichsstart herumprobiere, hat hier jemand Erfahrung ob der Vergleichswert überhaupt der richtige ist und wenn ja, wie der Vergleich funktionieren kann?
    Last edited by Gutmann; 18-07-18 at 14:23. Grund: Obsolet, Lösung gefunden

  6. #6
    Registriert seit
    Sep 2008
    Beiträge
    70

    Smile GELÖST!

    Mittlerweile habe ich die Lösung. Sobald der DROP COLUMN mit QSECOFR ausgeführt wird, wird der RPYLE automatisch gesetzt. Der Vergleichswert "'ACS Database Schemas" den ich gesucht habe, ist dann automatisch enthalten.

    Code:
    3282   CPA32B2  I           'ACS Database Schemas'                1
    Danke an alle Beteiligten die zur Lösung beigetragen haben.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wie ich oben schon schrieb:
    "Wenn du dir die Feld-Definition der Nachricht ansiehst, kannst du sehen womit der Vergleichswert verglichen wird. Ggf. ist das 1. Feld halt als Absender/Herkunft o.ä. definiert."

    Wenn du im angezeigten Joblog per F1 auf die Nachricht gehst, siehst du im Detail die Inhalte der Felder, die mit der MSGID beschrieben sind.
    In der Messagebeschreibung siehst du die Felder, der Vergleichswert nimmt diese Feldinhalte.
    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

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    DSPMSGD CPA32B2 > Felddaten anzeigen > &1 und &2 jeweils *CHAR 10.
    Im Nachrichtentext steht: "Datei &1 in der Bibliothek &2 sollte geändert werden."
    Was wird da jetzt wie verglichen ???

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wer immer eine Nachricht sendet, kann reinschreiben was er will solange er sich an die Formate hält.
    Der Vergleich der Antwortliste vergleicht ab der angegebenen Position gegen den Dateninhalt der Nachricht:

    Vergleichsdaten (CMPDTA) - Hilfetext

    Gibt die Vergleichsdaten an, mit denen bestimmt wird, ob dieser Eintrag
    einer Anfragenachricht entspricht. Dieser Parameter besteht aus
    Vergleichsdaten und einem Anfangswert für die Nachrichtendaten. Falls
    die ID der Anfragenachricht der Nachrichten-ID dieses
    Antwortlisteneintrags entspricht, werden die für diese Anfragenachricht
    angegebenen Nachrichtendaten mit diesen Daten verglichen. Wurde kein
    Anfangswert für die Nachrichtendaten angegeben, muss der erste Teil der
    Nachrichtendaten (maximal die ersten 28 Zeichen) genau mit den hier
    angegebenen Vergleichsdaten übereinstimmen, damit die für diesen
    Antwortlisteneintrag angeforderte Aktion ausgeführt wird. Wurde jedoch
    ein Anfangswert angegeben, muss der Teil der Nachrichtendaten, der an
    der durch den Anfangswert angegebenen Zeichenposition beginnt, genau mit
    den Vergleichsdaten übereinstimmen, damit die angeforderte Aktion
    ausgeführt wird. Sind die Vergleichsdaten länger als die
    Nachrichtendaten, tritt keine Übereinstimmung auf. Sind keine
    Vergleichsdaten angegeben, wird nur die Nachrichten-ID verwendet, um die
    Nachricht mit diesem Antwortlisteneintrag abzugleichen. Ist dies der
    erste Eintrag in der Nachrichtenantwortliste, der mit der Nachricht
    übereinstimmt, wird die in diesem Eintrag angegebene Aktion ausgeführt.

    Nachrichtendaten für eine Anfragenachricht können im Parameter MSGDTA
    des Befehls SNDUSRMSG oder SNDPGMMSG für die Anfragenachricht angegeben
    werden.

    Was also vom iNavigator/ACS-Serverjob da in die Nachricht geschrieben wird, kann man u.U. nur im aktiven Joblog sehen, falls die Nachricht nicht per RCVMSG (bzw.API) gelöscht wurde.

    Wenn dem nicht so wäre würden unsere ganzen Standardantworten der Anwendung nicht mehr funktionieren.
    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

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Anscheinend gibt der Serverjob als Nachrichtendaten der Nachricht CPA32B2 als Namen der Datei und der Bibliothek einfach seinen Namen "ACS Database Schemas" (20 Zeichen) mit und löscht die Nachricht anschließend schnell wieder. :-)

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Es ist zwar etwas mühsam dieses auszuprobieren, aber du kannst ja deinen Server-Job zur Laufzeit mal auf INQMSGRPY(*RQD) stellen. Dann sollten alle Nachricht generell hängen bleiben, da die SYSRPYL ignoriert wird. Der Inhalt der Nachricht sollte dann feststellbar sein.
    Aber seltsam ist das Verhalten ja schon.
    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

Similar Threads

  1. Probleme mit Identity Column in Table
    By Tonazzo in forum NEWSboard Programmierung
    Antworten: 22
    Letzter Beitrag: 09-03-16, 16:11
  2. ALTER TABLE Befehl
    By Franz.Rung in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 01-09-14, 07:14
  3. ALTER TABLE mit DROP KEY für Tabelle auf DDS-Basis
    By alexk2013 in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 19-06-14, 15:03
  4. Antworten: 7
    Letzter Beitrag: 11-02-14, 13:38
  5. Excel-Datei mit alter IP-Adresse
    By Tommy in forum NEWSboard Windows
    Antworten: 1
    Letzter Beitrag: 11-07-02, 12:10

Tags for this Thread

Berechtigungen

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