无法转换假脱机文件数据 - Java(JT400)

时间:2013-08-20 06:57:45

标签: java ibm-midrange jt400

我试图使用Java转换(读取)* SCS假脱机文件(JT400),但当我尝试转换它时,我收到此错误消息

“com.ibm.as400.access.AS400Exception:CPF3394无法转换假脱机文件数据。”

任何人都知道如何解决这个问题?

               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);
    }

2 个答案:

答案 0 :(得分:3)

固定代码(答案):

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);
    }

}  

答案 1 :(得分:1)

对于* SCS假脱机文件,您应该使用getInputStream。

不推荐使用getInputACIFMergedStream,而应使用getAFPInputStream,但仅限于* AFPDS假脱机文件。