创建一个假脱机文件时,有没有一种方法来specifiy作业名? 所以,我创建了顺丰速不具有默认的 “QPRTJOB”。

我的方法,该方法使用默认QPRTJOB作业创建一个假脱机文件:


   public static SpooledFile createSpoolFile( com.ibm.as400.access.AS400 as, PrinterFile pPrinterFile,
         OutputQueue outq, String msg ) {
      SpooledFile result = null;
      try {
         PrintParameterList parms = new PrintParameterList();

         // create a PrintParameterList with the values that we want
         // to override from the default printer file...we will override
         // the output queue and the copies value.
         parms.setParameter( PrintObject.ATTR_PRINTER_FILE, pPrinterFile.getPath() );
         parms.setParameter( PrintObject.ATTR_JOBUSER, AS400.getUser().getUserProfileName() );
         parms.setParameter( PrintObject.ATTR_JOBNAME, "NASAOBRJVA" );
         parms.setParameter( PrintObject.ATTR_OUTPUT_QUEUE, outq.getPath() );
         parms.setParameter( PrintObject.ATTR_CHAR_ID, "*SYSVAL" );

         SpooledFileOutputStream spool = new SpooledFileOutputStream( as, parms, pPrinterFile,
               outq );


         SCS5256Writer scsWtr = new SCS5256Writer( spool, pPrinterFile.getSystem().getCcsid(), pPrinterFile.getSystem() );

         String[] redovi = msg.split( "\n" );
         for ( int i = 0; i < redovi.length; i++ ) {
            if (redovi[i].equals( "" ) || redovi[i].equals( " " )) {
               continue;
            }
            scsWtr.write( redovi[i].trim() );
            if (i < redovi.length - 1) {
               scsWtr.newLine();
            }
         }

         scsWtr.close();
         result = spool.getSpooledFile();
         System.out.println("Spool is in Job: " + result.getJobNumber() + "/" + result.getJobUser() + "/" + result.getJobName());
      }
      catch ( Exception e ) {
         LOG.error( e );
      }
      return result;
   }  
有帮助吗?

解决方案

和ATTR_JOBUSER ATTR_JOBNAME是只读属性假脱机文件。我注意到,每当我的Java程序交谈的AS / 400 - 即使是那些在AS / 400本机运行 - 他们聊到主机服务器的工作,不一定所提交的Java调用工作。在这种情况下,你说的对400和所有的假脱机文件的打印服务器作业将得到一个QPRTJOB作业名。

这是精心设计的变通办法是有你的Java程序提交一个名为NASAOBRJVA新工作的命令来调用与消息文本作为参数一些简单的RPG程序。这可能是一个很大的力气对假脱机文件作业名,但你知道你的项目不够了解,如果它是值得的努力。

其他提示

作业,用户和作业号是由系统分配的,不能更改。据我所知反正。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top