[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2004
    Beiträge
    136

    Question RPGLE Programm bewust "abstürtzen lassen"

    Hallo,

    gibt es eine Möglichkeit, ein Programm bewust "abstürtzen" zu lassen?

    Hintergrund ist, dass ich in sehen möchte ob das Programm, wenn es per SBMJOB übergben wird auch abnormal beendet wurde. Ich hab das mal über ein CL, das dann ein SNDPGMMSG *ESCAPE aufruft probiert, dann muss ich allerdings eine Nachricht eingeben. Finde ich aber auch nicht so glücklich, kann man dem Programm nicht einfach ein Status setzen bevor es beendet wird.

    Gruß
    Xanas

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    wer ist schon glücklich, SNDPGMMSG oder QMHSNDPM ist der AS400 typische Weg, als Message kann man da die CPF9898 verwenden, der kann man einen Text mitgeben.
    Der C Weg mit Rückgabe eines Return Codes beim Aufruf von exit() müsste in ILE auch verwendbar sein, ebenfalls abort(), dafür ist allerdings RPG besser geeignet und man muss sich den passenden Prototyp schreiben (oder MR.Google fragen, oder gleich bei Thomas Raddatz auf Tools400 nachsehen). Wenn da noch ein CL drumherum ist, dann darf da kein MONMSG ziehen, dann rattert der Fehler durch. Ganz abgebrühte dividieren durch 0, oder rufen das Programm gibdednet auf, das funzt auch, aber macht mich wiederum nicht glücklich.

    mfg

    Dieter Bender

    Zitat Zitat von Xanas Beitrag anzeigen
    Hallo,

    gibt es eine Möglichkeit, ein Programm bewust "abstürtzen" zu lassen?

    Hintergrund ist, dass ich in sehen möchte ob das Programm, wenn es per SBMJOB übergben wird auch abnormal beendet wurde. Ich hab das mal über ein CL, das dann ein SNDPGMMSG *ESCAPE aufruft probiert, dann muss ich allerdings eine Nachricht eingeben. Finde ich aber auch nicht so glücklich, kann man dem Programm nicht einfach ein Status setzen bevor es beendet wird.

    Gruß
    Xanas
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Aus (ILE)RPG hilft ggf. nur das API QMHSNDPM.
    Dabei ist die korrekte Aufrufebene zu berücksichtigen.

    Aber es gibt da noch eine seltenere Funktion:

    Halt Indicators (H1-H9)
    You can use the halt indicators (H1 through H9) to indicate errors that occur
    during the running of a program. The halt indicators can be set on as record
    identifying indicators, field indicators, or resulting indicators.
    The halt indicators are tested at the *GETIN step of the RPG IV cycle (see
    Chapter 3,
    Program Cycleon page 21). If a halt indicator is on, a message is
    issued to the user. The following responses are valid:

    v
    Set off the halt indicator and continue the program.

    v
    Issue a dump and end the program.

    v
    End the program with no dump.
    If a halt indicator is on when a RETURN operation inside a main procedure is
    processed, or when the LR indicator is on, the called program ends abnormally.
    The calling program is informed that the called program ended with a halt
    indicator on.

    Note:
    If the keyword NOMAIN is specified on a control specification, then any
    halt indicators are ignored except as conditioning indicators.

    Damit nicht auf Antwort gewartet werden muss, sollte der Job per CHGJOB INQMSGRPY(*DFT/*SYSRPYLE) geändert sein.

    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
    May 2004
    Beiträge
    444
    Also wenn ich ein Programm abstürzen lassen will mach ich einfach eine Division durch 0

  5. #5
    Registriert seit
    May 2007
    Beiträge
    4
    Zitat Zitat von harkne Beitrag anzeigen
    Also wenn ich ein Programm abstürzen lassen will mach ich einfach eine Division durch 0
    Es soll auch Leute geben, die gegen den Baum fahren, wenn sie bremsen wollen. Die Variante mit *INHx hat den Vorteil, daß man so gleich sehen kann, welcher Haltanzeiger gesetzt wurde und dann gleich weiß, wieso das Programm stehenblieb (vorausgesetzt, man nimmt H1 für den einen Fehler, H2 für den anderen, etc.).
    Die Methode mit den Nachrichten ist zweifellos die eleganteste. Leider läßt sich QMHSNDPM ein bißchen hakelig bedienen, da kann aber auch selber eine kleine Prozedur schreiben. Vorteil davon wäre, daß man sein RPG-Programm aus einem CL aufrufen kann und dann wie gewohnt mit MONMSG rangehen...

  6. #6
    Registriert seit
    May 2004
    Beiträge
    444
    Ich möche mich hier nicht in eine Diskussion reinsteigern, aber wenn ich die Sicherheit des Autos testen will muß es an den Baum

Similar Threads

  1. Rückgabewert vom RPG Programm
    By mk in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 21-04-11, 21:51
  2. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  3. RPGLE Programm mit User Defined Types
    By MatthiasK in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-02-07, 16:23
  4. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32

Berechtigungen

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