TechTip: Creating Zip Files on the iSeries

Java
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times
Zip files are heavily used in the PC world for archiving groups of files and for treating a group of files as a unit. The phenomenal support for Java on the iSeries and the UNIX-like Qshell environment make it possible for the iSeries to create and extract from zip files, too.

Consider, for example, a challenge. You have been asked to write a program that will FTP customer account balance information to another system. The file is to be in CSV format, but zipped in order to reduce the file size. Your first impulse might be to use iSeries Access or a third-party alternative to transfer the database file to a PC, converting the data to CSV format in the process. Next, you would use a package like WinZip to create a zip file. Last, you would use the PC's FTP client to send the zip file to the other system.

There's nothing wrong with that approach, but you might prefer to have the iSeries, maybe even in attended mode, do all the work instead.

To create a CSV file from a database file, use the Copy to Import File (CPYTOIMPF) command. Create the file in PC-compatible format in a directory of the root system of the Integrated File System (IFS).

CPYTOIMPF FROMFILE(BALANCES) +
          TOSTMF('/home/somedir/balances.csv') +
          MBROPT(*REPLACE) +
          STMFCODPAG(*PCASCII) +
          RCDDLM(*CRLF) +
          DATFMT(*USA)

The new file is called balances.csv, and it resides in the directory called /home/somedir. OS/400 creates the file with code page 1252. Records are terminated with the carriage-return/line-feed combination. Default values of parameters that are not shown here assure that character fields are preceded and terminated with quotation marks and that the decimal point is a comma. In this example, date fields (i.e., fields of the date data type) are expressed in the CSV file with the MM/DD/YYYY format commonly used in the United States.

To zip the file, use CL's STRQSH (Start Qshell) command to run Java's jar tool in the Qshell environment:

STRQSH CMD('jar cfM balances.zip balances.csv')

The first parameter of the jar command consists of three options, which must be keyed in the cases in which I've typed them. Option c means that the zip file is to be created. Option f indicates that the jar file name, balances.zip, follows in the next parameter. The M option suppresses creation of a manifest file, a file that contains information about packages in the zip archive. The manifest file can be suppressed, since it is not applicable in this case.

Now that the zip file has been built, you can use the iSeries FTP client to send it to the other system. Don't forget to use a binary transfer.

The entire process--creating the CSV file, creating the zip file, and transmitting to the other system--can easily be carried out with one CL program that you may even be able to schedule to run automatically from the job scheduler.

For more information about Qshell and the jar utility, I recommend two resources. The first is Sun's jar documentation, which you can find on the Web. The second is chapter 23 of Qshell for iSeries by Ted Holt and Fred A. Kulack.

Paul Amsden is a big proponent of simplifying processes when possible.

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  •  

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: