View Full Version : Dateiübersicht aus Query
Genau das wollte ich gerade schreiben :D Beim Ausführen tritt der Fehler erst auf...
kuempi von stein
06-01-09, 11:37
*seufz*
ahhh nun hab ichs.
ich meine den gleichen Fehler....
Zwischendarstellung des Programms (IRP) enthält 2 Fehler. Wahrscheinlic
Compiler-Fehler.
Funktionsprüfung. CPF6301 nicht überwacht durch CLMIRPG bei Anweisung
3300, Instruktion X'003C'.
mal schauen
*grübel*
kuempi von stein
06-01-09, 12:22
sodele,
ich weiss gar nicht, wo ich anfangen soll.
alsooooooo....
Die Quelle von User Schulz ist Schrott glaube ich.
Da stimmt einiges vorne und hinten nicht.
Die Grundidee für dieses "Programm" scheint von hier entnommen zu sein: System i - i5 - iSeries - AS400 - AS/400 Programming Tips (http://www.as400pro.com/tipView/category/MI/key/117/)
Wenn ich mir das anschaue, besteht die Technik ja wohl darin, den als DS im RPG angehängten Text an das interne Api zu übergeben, damit daraus ein MI erstellt wird.
Leider ist in der Quelle von Schulz schon mindestens ein Fehler drin, bezüglich der Sourcelänge.
E MI 1 285 80
C PARM 21920 #SRCLN
da müsste meiner Meinung nach nicht 21920 sondern 22800 stehen.
Auf Deine Modifizierte Quelle wird dieser Fehler nun mitgeschleppt
E MI 1 302 80
C PARM 21920 #SRCLN
statt 21920 müsste es atm 24160 heissen.
Will sagen, der Api kriegt sich da nicht ein irgendwo.
Nun habe ich mal versucht die Zahlen zu ändern, passiert der gleiche Schrott.
Ich rate Dir, das Projekt zu vergessen.
Da das vermutlich aber für Dich nicht in Frage kommt, schlage ich Dir folgende Vorgehensweise vor:
Mach Dir erst mal ein eigenen CRTMI-Command.
Alle notwendigen Quellen findest Du hier: APIs by Example: A Machine Interface (MI) Compiler | System iNetwork (http://systeminetwork.com/node/61089)
Dann hätteste Du ein lecker CMD mit CL und RPG und beides auf Ilebasis.
Damit kann man dann weiter rumspielen.
Zum Beispiel dann den verkorksten Text von User Schulz mal nehmen, als MI-SRC (einfach nur ne Textsource) mit coppyfloppy als Member abstellen und dann mal schauen, ob da raus ein MI gemacht wird.
Letzteres bezweifel ich irgendwie, speziell die letzte Zeile sieht mir komisch aus, aber da kenne ich mich zu wenig aus.
Gefunden habe ich den ganzen MI-Quatsch hier: Programming Tips for System i, i5, iSeries (AS/400) Consultants - Contract Programmers, Programming, Contractors, Consulting, Software, Development, and Support. SQL, RPG, Books, Java, Atlanta (http://www.as400pro.com/tipListInq/category/MI/)
Das scheint mir eine gute Referenz zu sein.
Sodele, ich bin raus aus dem Pot, würde aber gerne mal hören wenn es klappt oder nicht eben.
Kuempi
Na gut, danke dir für deine Mühen. Ich werd mir das ganze Mal angucken.
Da ist wohl beim Kopieren ein Teil doppelt reingerutscht.
Der Teil ab der ersten Sprungmarke ".Dft_Output_File" bis zur zweiten Sprungmarke ".Dft_Output_File" ist doppelt.
Du hast absolut Recht. Das Programm stürzt jetzt nicht mehr ab beim Aufrufen. Das MI-PGM wurde erstellt.
Leider gibt dies immer den Return Code '1' zurück, wenn ich es aufrufe. Aber das wird bestimmt noch *zuversichtlichbin*
kuempi von stein
07-01-09, 11:27
Da ist wohl beim Kopieren ein Teil doppelt reingerutscht.
Der Teil ab der ersten Sprungmarke ".Dft_Output_File" bis zur zweiten Sprungmarke ".Dft_Output_File" ist doppelt.
hehe, sehr gut der Mann.
Soweit bin ich gestern gar nicht in die Tiefe gegangen mit der Analyse.
kuempi
Ich habe den MI-Code manipuliert:
Die Anweisungen für den Exception Monitor habe ich auskommentiert, so dass ich einen Fehler beim Aufruf des Programms bekomme, anstatt nur den Returnwert '1'.
Folgender Fehler tritt auf:
Nachricht . . . : Objektdomäne oder Speicherschutzfehler für Offset in
Objekt ARTPROT.
Ursache . . . . : Ein Programm hat versucht, eine blockierte Instruktion zu
benutzen, auf ein Systemdomänenobjekt zuzugreifen oder unerlaubt auf eine
geschützte Seite zuzugreifen. Die Art des Verstosses ist 1 und verweist auf
die Fehlerart:
1-Ungültige Objektdomäne.
ARTPROT ist das Query, was ich untersuchen wollte. Ich habe mit Sicherheit Berechtigung auf das Objekt zuzugreifen, da *ALLOBJ. Mit RPG Mitteln hat man kaum die Chance solche Fehler zu erzeugen, deshalb bin ich auch erstmal ratlos. Wisst ihr was dazu?
Wie steht denn die Sicherheitsstufe des Systems (DSPSYSVAL QSECURITY)?
Habe es gerade auf unserer Produktivmaschine ausprobiert. Da geht es ohne Probleme.
Produktiv: 30
Test: 40
Da sieht man's mal wieder. Die Sicherheit gefährdet nur die Entwicklung :D
Da man das Prog unter Stufe 40 wohl eh nicht zum Laufen bekommt, reicht mir das Ergebnis aus. Die Produktivmaschinen laufen eh alle auf 30 atm.