[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2002
    Beiträge
    21

    Post Pause in einem CL

    Guten Morgen alle zusammen,
    ich habe in einem CL u.a zwei QRYPROD die in einem Batch laufen. Das Problem ist, daß direkt danach Dateien benötigt werden welche durch die Prozedur erst erstellt werden. Wenn nun die Queries noch nicht gelaufen sind (aus welchen Gründen auch immer) habe ich gesammelte Fehlermeldungen :-((. Daher meine Frage an die Runde: was muß ich machen, damit das Programm erst dann weiterläuft wenn die QRYPRODs beendet sind ?
    Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt....

    Besten Dank und Grüße
    Michael

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121

    Post

    hallo michael,

    wenn deine Files erst erstellt werden, dann kannst du mit CHKOBJ arbeiten
    hier ein kleines beispiel:
    Code:
    pgm                                                          
                                                                 
      /*   hier dein erstellen der file's durch die prozeduren */
                                                                 
    LOOP:                                                        
                                                                 
      dlyjob  60                    /* 60 Sekunden warten */     
                                                                 
      chkobj obj(MyLib/MyFile) objtype(*file)                    
      monmsg cpf9801 exec(do)                                    
        goto loop                                                
      enddo                                                      
                                                                 
                                                                 
      /*   und hier dann weiter arbeiten                       */
                                                                 
                                                                 
    endpgm
    du kannst den job auch einfach nur mit dem DLYJOB warten lassen.
    bei dem beispiel bleibt kommt er allerdings nie zu ende, wenn die files nie erstellt werden! man sollte dann eventuell einen zähler einbauen, das er den ganzen spass nur 5 mal macht
    gruß
    ronald

    [Dieser Beitrag wurde von malzusrex am 27. Mai 2003 editiert.]

  3. #3
    Registriert seit
    Apr 2001
    Beiträge
    267

    Wink

    Hallo Michael,

    wenn die Dateien erst durch die Prozeduren erstellt werden, kannst Du im Cl folgendes machen:

    CHECK1: CHKOBJ obj(lib/datei1) objtype(*file)
    monmsg(cpf9801)exec do
    dlyjob dly(30)
    goto cmdlbl(check1)
    enddo

    (CPF9801 = Objekt in LIB nicht gefunden

    Wenn Die datei1 vorhanden ist, prüfst Du unter CHECK2 dann die 2. Datei ab.

    Gruss
    Bodo

    [Dieser Beitrag wurde von Bodo Roggenkamp am 27. Mai 2003 editiert.]

  4. #4
    Registriert seit
    Sep 2002
    Beiträge
    21

    Post

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von malzusrex:
    hallo michael,

    wenn deine Files erst erstellt werden, dann kannst du mit CHKOBJ arbeiten
    hier ein kleines beispiel:
    Code:
    pgm                                                          
                                                                 
      /*   hier dein erstellen der file's durch die prozeduren */
                                                                 
    LOOP:                                                        
                                                                 
      dlyjob  60                    /* 60 Sekunden warten */     
                                                                 
      chkobj obj(MyLib/MyFile) objtype(*file)                    
      monmsg cpf9801 exec(do)                                    
        goto loop                                                
      enddo                                                      
                                                                 
                                                                 
      /*   und hier dann weiter arbeiten                       */
                                                                 
                                                                 
    endpgm
    du kannst den job auch einfach nur mit dem DLYJOB warten lassen.
    bei dem beispiel bleibt kommt er allerdings nie zu ende, wenn die files nie erstellt werden! man sollte dann eventuell einen zähler einbauen, das er den ganzen spass nur 5 mal macht
    gruß
    ronald

    [Dieser Beitrag wurde von malzusrex am 27. Mai 2003 editiert.]
    [/quote]


  5. #5
    Registriert seit
    Jul 2003
    Beiträge
    63
    Hallo Michael,

    bin erst jetzt per Zufall auf Dein Thema gestoßen.

    zunächst: CHKOBJ hilft hier nicht immer, nämlich dann nicht, wenn zum Zeipunkt der Verarbeitung dieses Statements die Datei zwar erstellt ist, aber Query noch dabei ist, Sätze zu schreiben.
    Hier sollte man RTVMBRD bnutzen und auf die Anzahl Sätze abfragen (Parameter NBRCURRCD).

    Am allerbesten jedoch scheint mir folgende Lösung:

    Abläufe, bei denen sich folgende Aktionen der Ergebnisse bedienen müssen, die vorausgehende Aktionen erstellt haben, sollten über eine Jobqueue gesteuert werden, aus der das verarbeitende SBS maximal einen Job verarbeitet.

    In Deinem Fall sollten deine 2 Queries und der folgende Rest Deines CL als gesonderte Jobs in eine solche JOBQ submittet werden. Hierzu mußt Du natürlich den letzten Teil des CL kapseln .

    Die letzten Aufrufe deines jetzigen CL sollten lauten:

    SBMJOB (1. Query)
    SBMJOB (2. Query)
    SBMJOB (Rest des CL)

    Gruß
    Klaus Hardy

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. Suche Liste Ersatzoperatoren im CL
    By kuempi von stein in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-07-06, 14:34
  4. DLYJOB im CL
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 18-07-06, 21:04
  5. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00

Berechtigungen

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