Search code examples
javaibm-midrangejt400

Can't convert Spooled file data - Java (JT400)


I'm Tried to convert (Read) *SCS Spooled File Using Java (JT400) but when i trying to convert it , i got this error message

"com.ibm.as400.access.AS400Exception: CPF3394 Cannot convert spooled file data."

Anyone know how to fix this ?

               AS400 sys = new AS400();
    SpooledFile sf = new SpooledFile( sys,          // AS400
                                        "CUSR_R1",       // splf name
                                        2,           // splf number
                                        "QPADEV003H",    // job name
                                        "USER",      // job user
                                        "096018" );   // job number
   PrintObjectInputStream inputStream = sf.getInputACIFMergedStream(true);
   System.out.println ("size " + inputStream.available());
   BufferedReader d = new BufferedReader(new InputStreamReader(inputStream));
       String data ="";
       while((data = d.readLine() )!=null)
       {
        System.out.println (data);
        }
    } catch (Exception e) {
        System.out.println(e);
    }

Solution

  • Fixed Code (Answer) :

    try {
            
                   AS400 sys = new AS400("");
        SpooledFile sf = new SpooledFile( sys,          // AS400
                                            "CUSR_R1",       // splf name
                                            2,           // splf number
                                            "QPADEV003H",    // job name
                                            "USER",      // job user
                                            "096018" );   // job number
    
    PrintParameterList printParms = new PrintParameterList();
    printParms.setParameter(PrintObject.ATTR_WORKSTATION_CUST_OBJECT,   "/QSYS.LIB/QWPDEFAULT.WSCST");
    printParms.setParameter(PrintObject.ATTR_MFGTYPE, "*WSCST");
    
    // Create a page input stream from the spooled file
    PrintObjectPageInputStream is = sf.getPageInputStream(printParms);
    
    BufferedReader d = new BufferedReader(new InputStreamReader(is));
           String data ="";
           while((data = d.readLine() )!=null)
           {
            System.out.println (data);
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    
    }