Skip to content

Structured Download

Overview

Download… in the Object Browser is a submenu that offers three ways to download IBM i source members to a local folder. The original single-member download is still available as Member, and two new structured layout options organize downloads into subfolders that reflect the IBM i QSYS hierarchy.

The structured options are particularly useful when migrating IBM i source into a Git repository, as they produce a folder layout that is ready for version control.

How to Use

  1. In the Object Browser/Filter, right-click one of the following:
    • A source physical file (PF-SRC) name — downloads all members in that file
    • Select one or more source members — downloads the selected members
  2. Hover over Download… to reveal the submenu
  3. Choose a download option:
    • Member — saves a single member via a Save-as dialog (original behavior)
    • File → Member — structured download to a subfolder named for the Source File
    • Library → File → Member — structured download to a library->file folder structure with the members stored under the file name folder.
  4. For structured options, choose a base download folder on your local machine when prompted
  5. Subfolders and files are created automatically

Download submenu showing Member, File → Member, and Library → File → Member options

Download Options

Library → File → Member

Use this when you want the full IBM i path preserved locally.

Given IBM i source in library DEVLIB:

DEVLIB
├── QRPGLESRC
│ ├── PROGRAMA.RPGLE
│ ├── PROGRAMB.RPGLE
│ └── PROGRAMC.RPGLE
├── QCLLESRC
│ └── STARTJOB.CLLE
├── QCMDSRC
│ └── STARTJOB.CMD
└── QSQLSRC
├── CUSTOMERS.SQL
└── INVENTORY.SQL

After choosing ~/myproject as the base download folder:

~/myproject/
└── DEVLIB/
├── QRPGLESRC/
│ ├── PROGRAMA.RPGLE
│ ├── PROGRAMB.RPGLE
│ └── PROGRAMC.RPGLE
├── QCLLESRC/
│ └── STARTJOB.CLLE
├── QCMDSRC/
│ └── STARTJOB.CMD
└── QSQLSRC/
├── CUSTOMERS.SQL
└── INVENTORY.SQL

File → Member

Use this when want the source files to sit directly inside your project folder with their members below them — for example, downloading to a folder named Pickles that receives QRPGLESRC, QCLLESRC, etc. builds the folder structure using the source file names as subfolders.

After choosing ~/Pickles as the base download folder:

~/Pickles/
├── QRPGLESRC/
│ ├── PROGRAMA.RPGLE
│ ├── PROGRAMB.RPGLE
│ └── PROGRAMC.RPGLE
├── QCLLESRC/
│ └── STARTJOB.CLLE
├── QCMDSRC/
│ └── STARTJOB.CMD
└── QSQLSRC/
├── CUSTOMERS.SQL
└── INVENTORY.SQL

Collision handling

Comparison of Download Options

Download → MemberDownload → File→MemberDownload → Library→File→Member
Single memberMEMBER.EXTFILE/MEMBER.EXTLIBRARY/FILE/MEMBER.EXT
Multiple membersAll Members in one folderFILE/MEMBER.EXT tree (library omitted)Full LIBRARY/FILE/MEMBER.EXT tree
Best forQuick one-off saveSingle-library Git project setupMulti-library or full-archive download

Notes

  • The base download folder you select is remembered as the default for future downloads
  • The member’s source type (aka SEU type) is used as the file extension.
  • If a member’s source type is blank, the file extension is set to .MBR
  • All library, file, and member names are created in uppercase
  • Subfolders (for each library and file) are created automatically if they do not exist.
  • Source change dates (SEU sequence/date columns) are not downloaded — the recommended approach for change management for these objects is Git

For further reading on local development and Git workflows with IBM i, see the Code for IBM i documentation .