[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2009
    Beiträge
    33

    ILE RPG aktuelles Datum

    Hallo Kollegen,

    es ist mir sehr peinlich. Trotdem muß ich Euch fragen. Ich arbeite bisher immer mit RPGIV. Von ILE habe ich rel. wenig Ahnung. Nun zu meiner Frage: Wie kann ich das aktuelle Systemdatum abrufen. *date geht nicht. *ymd bringt mir nur immer den 1.1.2000. Ist es nur das Format?
    Vielen Dank im voraus.
    Thommy.
    Ach ja, gibt es noch einen Leitfaden ILE, um reinzukommen in prozeduren imbeded..

  2. #2
    Registriert seit
    Nov 2007
    Beiträge
    371
    hi,

    es gibt keine peinlichen/dummen fragen..

    nur dumme antworten..


    schau dir mal diesen link an

    Code400.com, iSeries, OS/400


    evtl beantwortet er dir alle fragen und noch mehr

  3. #3
    Registriert seit
    Feb 2009
    Beiträge
    33
    Hallo Woodstock,

    vielen Dank. Zum Teil bin ich zwischenzeitlich schon weitergekommen.

    Viele Grüße und frohe Weihnachten.
    Thommy

  4. #4
    Registriert seit
    Nov 2007
    Beiträge
    371
    yo wünsch ich dir auch .
    die seite hat auch noch mehr beispiele von allem möglichen...
    musst dir mal in ruhe anschauen .......

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    %date() liefert das aktuelle Datum. Wenn du das dezimal brauchst geht das mit:
    %dec(%char(%date():*iso0):8:0)
    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

  6. #6
    Registriert seit
    Jun 2004
    Beiträge
    17
    Hallo thommy,

    *date funktioniert auch unter ILE RPG (zumindestens bis V5R4.
    Für das Format yyyymmdd muss in den H-Bestimmungen datedit(*YMD) angegeben werden.
    Besser finde ich, die Build-In-Funktion %date zu verwenden.
    Mit V5R4 hat die IBM sogar %dec erweitert: %dec(%date: *iso)

    Bogomil

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    es muss zwischen Job- und System-Datum unterschieden werden.
    Der OpCode TIME bzw die Built-in-Functions %DATE(), %TIME(), %TIMESTAMP() alle ohne Parameter liefern das System-Datum.

    Die Sonderwerte *DATE und UDATE liefern das Job-Datum.

    Das Job-Datum ist das Datum, an dem der aktuelle Job gestartet wurde. Wenn also der Job am Montag Morgen vom ersten Arbeiter gestartet wird, dann bis Freitag durchläuft liefert *DATE am Freitag immer noch das Datum vom Montag.

    Das System-Datum ist immer das aktuelle Datum.

    Wenn Du nicht im RPG-Free-Format arbeitest und das numerische System-Datum brauchst, kannst Du den OpCode TIME verwenden. Das Datum wird jedoch im Job-Datums-Format (z.B. TTMMJJJJ) ausgegeben.

    Wenn Du im Free-Format arbeitest, kannst Du das numerische System-Datum so wie Baldur es angegeben hat ermitteln. Es geht jedoch auch einfacher:

    PHP-Code:
     /Free
       
    //System-Datum im Format JJJJMMTT
        
    SysDate = %Dec(%Date(): *ISO);
     /
    End-Free 
    Übrigens das numerische Job-Datum wird wie folgt ermittelt:
    PHP-Code:
     /Free
       
    //Job-Datum im Format JJJJMMTT
       
    JobDate = %Dec(Date(*Date): *ISO);
     /
    End-Free 
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Hi Birgitta

    Das hat man nun davon wenn man abschreibt ...

    Code:
     /FREE                                   
              RETURN    %DEC(%DATE(): *ISO); 
     /END-FREE

    Code:
    *RNF0327 30        000088  Der erste Parameter für %DEC oder %DECH ist ungültig.    
    *RNF0328 30        000088  Der zweite Parameter für %DEC oder %DECH ist ungültig.   
    *RNF0338 20        000088  Der dritte Parameter für %DEC darf nicht fehlen, wenn der
                               zweite Parameter angegeben wird.
    oder ist die Syntax bei Return anders ?
    Gruß
    Robi

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Die Syntax ist schon in Ordnung, Du solltest allerdings für Release V5R3 oder höher umwandeln.

    Sofern Du auf V5R2 runterwandeln musst, musst Du das Ganze wie folgt umsetzen:

    PHP-Code:
     /Free
       
    Return (%Int(%Char(%Date(): *ISO0)));
     /
    End-Free 
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Grummel

    Der Umwandel-Releasestand war tatsächlich auf V5R2 zurückgesetzt.
    Da soll mal einer dauf kommen
    Danke
    Robi

Similar Threads

  1. ILE RPG / SQL Füllen einer Feldgruppe
    By homue in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-07-07, 16:47
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  3. DDS in ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 82
    Letzter Beitrag: 19-10-06, 15:37
  4. Return ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 31
    Letzter Beitrag: 28-09-06, 17:53
  5. Rechnen mit Datumsfeldern in ILE RPG
    By Angela in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 22-08-06, 10:11

Berechtigungen

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