[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2011
    Beiträge
    93

    Post CPYTOIMPF Datensalat

    Hallo,
    ich habe ein kleines Problem mit dem CPYTOIMPF, ich setzte folgendes Statement ab:

    CPYTOIMPF FROMFILE(OUTQMK/TEXTFILE) TOSTMF('/home/MKLEIN/meinedat.txt') STMFCODPAG(*STDASCII) STMFAUT(*FILE) RCDDLM(*CRLF) DTAFMT(*FIXED)

    dabei erfolgt auch eine Datenübertragung ins IFS :-)
    Jedoch das Ergebnis ist nicht das was ich erwartet habe :-(
    Das sieht dann so aus:

    @õ÷÷ðââñ@å÷ÙñÔð@ñððôòó@@@@@@@@@ @@@@@@@@@æ–™’@¦‰£ˆ@Áƒ£‰¥…@Ñ ‚¢@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ôañõa ñö@@øzððzðð@@@@@@@@ׁ‡…@@@@ñ@@
    @Ù…¢…£@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@z@ @@\ÕÖ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


    Wenn ich die ursprünglich Tabelle mir mit SQL ansehe, ist alles so wie es sein soll, aber nach der Übertragung ins IFS .......

    Was stimmt an dem CPYTOIMPF Statement nicht?

    Vielen Dank für eure Hilfe!

    Gruß
    Manfred

  2. #2
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hallo.

    Nehm mal bitte : STMFCODPAG(*PCASCII)

    Gruß,
    Ralf

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Jedwede ASCII-Tabelle ist grundsätzlich falsch wenn man nicht mit DOS umgeht.
    1252 (ANSI-Westeuropa) wäre wohl besser geeignet.
    Wenn die Zieldatei aber existiert, wird die dort bereits angegebene CCSID genommen.
    Also besser das Ziel erst mal löschen.
    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
    Aug 2011
    Beiträge
    93
    Danke für die schnellen Antworten,
    jedoch habe ich schon STMFCODPAG(*PCASCII) versucht und die Zieldatei ebenfalls gelöscht.

    Es muss doch an der Ursprungsdatei liegen, ich habe das mit einer anderen Datei getestet, und da ist alles so wie es soll.

    Aber vielleicht gibt es eine andere Lösung?!
    Ich mache folgenes:
    Jeden Tag um 18:00 und 06:00 Uhr läuft ein Job der die Ausgabe von WRKSYSSTS in eine Outputq schreibt.
    WRKSYSSTS OUTPUT(*PRINT) ASTLVL(*BASIC)

    Dort steht auch drin wie die aktuelle Plattenauslastung ist. Diese Zahl wird dann in eine Mysql DB eingetragen und mit PHP, CSS und HTML eine Grafik erstellt.
    Wenn ich also diesen Wert in das IFS bekomme, kann ich den Rest auch automatisieren so das die Grafik immer aktuell ist.
    Ich wollte also die Ausgabe mit
    CPYTOIMPF ins IFS haben und diese dann mit Java auslesen und in die DB eintragen. O.K. Java hab ich kein Ahnung, das macht mein Kollege.

    Danke!

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Welche CCSID (ID des codierten Zeichensatzes) haben die Ausgangsdatei (Befehl DSPFD) und ihre Felder (Befehl DSPFFD)?

  6. #6
    Registriert seit
    Aug 2011
    Beiträge
    93
    Beides mal CCSID 65535

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das ist hex und wehrt sich gegen Konvertierung, aber...
    wäre qsh cmd('system wrksyssts > myStreamfile') nicht einfacher?

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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Du kannst auch die FROMCCSID(273) angeben, default ist *FILE und Binärfelder (65535) werden eben binär übertragen.
    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

  9. #9
    Registriert seit
    Aug 2011
    Beiträge
    93
    Ich habs gewusst! ! ! Hier wird einem (mir) geholfen vielen Dank! ! ! mit FROMCCSID(273) funktioniert es. :-)
    @BenderD mit dem Befehl erhalte ich die gleich Ausgabe (Datensalat)

    Danke noch mal an alles und ein schönes Wochenende!

  10. #10
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo,

    ab 7.1 geht das auch mit SQL

    PHP-Code:
    SELECT FROM QSYS2.SYSTEM_STATUS_INFO
    https://www.ibm.com/developerworks/c...EM_STATUS_INFO

    Herzliche Grüße

    Rainer

    www.myhofi.com - powered by IBM i

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn SQL dann auch noch gleich den Datenexport (ohne Programm) mit erledigt...
    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

  12. #12
    Registriert seit
    Aug 2014
    Beiträge
    179
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wenn SQL dann auch noch gleich den Datenexport (ohne Programm) mit erledigt...
    Ganz ohne Programm geht es über eine SQL-Function, aber es geht auch mit RPG

    PHP-Code:
             ctl-opt dftactgrp(*nooption(*nounref);
          
    //------------------------------------------------------------------//
          //                                                                  //
          // WRKSYSSTS mit SQL ins IFS                                        //
          //                                                                  //
          //-----------------                                                 //
          // R.Ross 04.2016 *                                                 //
          //------------------------------------------------------------------//
          // Ausführungsbestimmungen                                          //
          //------------------------------------------------------------------//

               
    wrksyssts('/tmp/wrksyssts.xml');

               *
    inlr = *on;
          
    //------------------------------------------------------------------//
          // Procedure - wrksyssts                                            //
          //------------------------------------------------------------------//
             
    dcl-proc wrksyssts;
             
    dcl-pi *n;
                     
    file        varchar(256) const options(*varsize:*trim);
             
    end-pi;

             
    dcl-s   clob        sqltype(xml_clob_File);  // XML-CLOB-File

               
    exec sql set option datfmt=*isotimfmt=*isocommit=*none,
                        
    closqlcsr=*endactgrp;                  

               
    clob_name file;                          // StreamFile
               
    clob_nl   = %len(%trim(clob_name));        // NameLength
               
    clob_fo   SQFOVR;                        // FileOverwrite

               
    exec sql declare sqlcursor cursor for      // Declare Cursor
                 
    select xmlserialize(
                   
    content xmlelement(
                     
    name "row",
                       
    xmlforest(
                        
    ACTIVE_JOBS_IN_SYSTEM,  
                        
    AVERAGE_CPU_UTILIZATION,
                        
    SYSTEM_ASP_STORAGE,     
                        
    SYSTEM_ASP_USED
                       
    )
                   )
                   as 
    clob(1Mincluding xmldeclaration)                            
                 
    from QSYS2.SYSTEM_STATUS_INFO;

               
    exec sql open sqlcursor;                   // Open Cursor

               
    if sqlcod = *zero;
                  
    exec sql fetch sqlcursor into :clob;
               endif;

               
    exec sql close sqlcursor;                  // Close Cursor

             
    end-proc;
          
    //------------------------------------------------------------------// 
    Das Ergebnis ist eine XML-Datei, die so aussieht und mit PHP eingelesen werden kann
    PHP-Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <row>
        <ACTIVE_JOBS_IN_SYSTEM>244</ACTIVE_JOBS_IN_SYSTEM>
        <AVERAGE_CPU_UTILIZATION>2,11</AVERAGE_CPU_UTILIZATION>
        <SYSTEM_ASP_STORAGE>1702770</SYSTEM_ASP_STORAGE>
        <SYSTEM_ASP_USED>15,57</SYSTEM_ASP_USED>
    </row>
    Einlesen der Datei mit PHP

    PHP-Code:
    <?php
    $xml 
    simplexml_load_file("wrksyssts.xml") or die("Error: Cannot create object");
    print_r($xml);
    ?>
    Das Ergebnis ist ein PHP-Array

    PHP-Code:
    SimpleXMLElement Object (
    [
    ACTIVE_JOBS_IN_SYSTEM] => 244 
    [AVERAGE_CPU_UTILIZATION] => 2,11
    [SYSTEM_ASP_STORAGE] => 1702770  
    [SYSTEM_ASP_USED] => 15,57
    Die Feldnamen findet Ihr hier https://www.ibm.com/developerworks/c...EM_STATUS_INFO

    Grafische Auswertungen mit der IBM i + www.webix.com + www.highcharts.com sehen so aus
    www.myhofi.com/devhtm/charts.htm

    Herzliche Grüße

    Rainer

Similar Threads

  1. CPYTOIMPF
    By KingofKning in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 16-03-15, 16:07
  2. CPYTOIMPF
    By AK1 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 27-08-14, 14:23
  3. CPYTOIMPF
    By alex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-06-03, 08:22
  4. Cpytoimpf
    By horst in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 19-07-01, 13:02
  5. Nochmal Cpytoimpf
    By horst in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 03-07-01, 07:54

Tags for this Thread

Berechtigungen

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