In many ways, WDSC is content to simply emulate PDM and SEU. In fact, it sometimes goes out of its way to do just that. For example, WDSC supports the various line-oriented commands of SEU, such as "C" and "A", which together (C)opy one line (A)fter another. These features provide a graceful transition from the 5250 environment to the GUI world. They're useful especially to acclimate newer users, but the real productivity doesn't hit until you use the point-and-click features. For example, you can double-click on a word, right-click on that selected word, and then choose the Find option to find the next occurrence. This is a lot faster than anything you can do in the 5250, even if you try to use cut and paste. And it's these faster features that eventually become the "5250-killers" that move WDSC from an interesting novelty to an essential tool.
All Hail the PDM Killer!
Filters are the PDM-killer of WDSC. While you can indeed use the Remote System Explorer (RSE) tree view and table view almost exactly as you would use PDM, the real benefit of WDSC arises when you start using filters to their fullest capabilities. Whereas you can use RSE to hack your way through the library and source file jungle that typically arises in many development shops, filters are far more of a surgeon's tool to create the finely honed views of your environment that you need to be productive.
In its simplest guise, a filter is simply a list. Filters can exist both in the IFS world, where they are folder-based, and in the QSYS world, where they work on the more familiar concepts of libraries, objects, and members. This tip will focus on the QSYS nature of filters; we can talk about IFS filters another day.
In the QSYS environment, a filter can be a list of libraries, objects, or members. While there is the same limitation as PDM in that you can work on only one level (library, object, or member) at a time, filters are more powerful than PDM in that you can easily use them to span boundaries. For example, you can have a filter that contains members from multiple source files or files from multiple libraries (or even members from source files in multiple libraries!).
In today's tip, we're going to create a filter that contains all the source files for a group of related libraries. Creating a filter is simple. I'll assume that you already have a connection to your iSeries (if not, you can't edit anything, and you need a little more basic support!). In my case, the connection is called TECHTIPS. In RSE, if I expand the TECHTIPS connection, the first thing in that connection will be an entry called iSeries Objects.
Figure 1: This is the first step in creating an object filter. (Click images to enlarge.)
If you expand iSeries objects, you'll see a list of options starting with Work with Libraries (if you don't see this, but instead see a list of Filter Pools, you are in the Show Filter Pool mode, which I'll cover in another tip). Assuming you are not in the Show Filter Pool mode, you could then right-click on the iSeries Objects and select New and then Object Filter from the menu.
Figure 2: First, identify what you want in the filter.
The first page of the dialog comes up. You can type in a library name, an object name, an object type, and even an object attribute, and you can use generics. In my case, I want to search every library starting with PSCDMO for every source file (object type *FILE, attribute PF-SRC) starting with Q. I hit the Next button.
Figure 3: Here, I name the filter.
The second page allows me to name the filter. Also, I can choose to create the filter either in all connections or only in this connection. Unless you have identical environments on multiple machines, you'll probably select the checkbox the way I have it shown.
Figure 4:The filter shows up under the connection.
The filter will then appear underneath the appropriate connection. (The screens continue to assume that you are not in the Show Filter Pool mode.) You can now expand the object by clicking on the arrow to the left, as in Figure 4.
Figure 5: Expanding the filter shows all the entries within it.
In my case, I have a number of libraries that start with PSCDMO, and each has one or more source files in it. At this point, one of the real weak points of filters comes into play: The list does not show all the information about the object. My example shows several files named QSOURCE in the list, but it's not apparent which ones exist in which libraries. While we nicely bug the fine folks at IBM to give us more information, the short-term workaround is to simply click on one of them:
Figure 6: Here's the result of clicking on a file in my filter.
The information about the member shows up both in the Properties view and in the status bar along the bottom of the screen. Enhancements I'd like to see include having the library name as part of the list entry (and the file name, in the case of member filters), as well as being able to reorder the entries in the list.
As you use filters more, you'll find they have great benefits. They can also create a little bit of a maintenance problem, and in another tip, I'll show you some ways to help manage that clutter and get even greater use out of this great feature.