• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Programmatically Retrieve Defined System i Names

    February 27, 2008 Michael Sansoterra

    In recent tips, I have discussed some of the useful client side tools that IBM has given to developers in the iSeries Access programmer’s toolkit for Windows. In this tip, I’d like to discuss how a Windows script or program can access all of the system names defined within iSeries Navigator (soon to be renamed System i Navigator).

    In these days of multiple System i systems and LPARs, it is increasingly common to see multiple systems defined within iSeries Navigator. There are several scenarios where it would be useful to harvest this information for use within a program.

    For example, consider an Excel application that can execute a single query against multiple System i platforms (whether test and live, or between a single byte and double byte application on different systems). It would be nice if Excel could present the user with a choice of system names to connect with.

    For another example, say a Windows script is created to retrieve data from multiple System i machines and dump it into an Oracle or SQL server-based data warehouse. In this case, rather than hard coding the system name(s) within the script, the script can automatically learn which system names it needs.

    To get the list of defined system names, IBM has given us a “SystemNames” class that can be used to retrieve this list. The following Visual Basic for Applications (VBA) code shows how to generate the list of system names:

    Sub BuildSystemsList()
    Dim AS400Systems As cwbx.SystemNames
    Set AS400Systems = New cwbx.SystemNames
    Dim i As Integer
    For i = 1 To AS400Systems.Count
        Debug.Print i, AS400Systems(i)
    Next
    End Sub
    

    In order to use this library, make sure you reference the “IBM AS/400 iSeries Access for Windows ActiveX Object” library in your VBA environment (in Microsoft Office applications you can find it under Tools→References). When using VBScript or late binding VBA code, use the CreateObject command:

    Set AS400Systems = CreateObject("cwbx.SystemNames")
    

    This simple loop can be modified to do something like establish an ODBC connection to each system using the ActiveX Data Objects library:

    Sub ODBCConnection()
    
    Dim AS400Systems As cwbx.SystemNames
    Set AS400Systems = New cwbx.SystemNames
    Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
    
    Dim i As Integer
    For i = 1 To AS400Systems.Count
        conn.Open "DSN=AS400;System=" + AS400Systems(i), "UserId", "Pwd"
        '
        ' Do something
        '
        conn.Close
    Next
    
    End Sub
    

    And here is an example showing what a prompt form might look like within an Excel application that can be used to query multiple System i systems:

    Figure 1. This Excel form presents the user with possible systems to use when querying data.

    The code to populate a list box on an Excel form is easy. If your Excel form contains a list box called “lboSystemNames,” here is the same basic code to populate it:

    Private Sub UserForm_Initialize()
    Dim AS400Systems As cwbx.SystemNames
    Set AS400Systems = New cwbx.SystemNames
    
    Dim i As Integer
    For i = 1 To AS400Systems.Count
        Me.lboSystemNames.AddItem (AS400Systems(i))
    Next
    End Sub
    

    Please notice that this code is sandwiched within the UserForm_Initialize() subroutine, which will automatically be executed whenever the form is run.

    One other useful property of the SystemNames class worth mentioning is DefaultSystem. DefaultSystem can be used to inform the program of the default configured system within iSeries Access so that a default host can be chosen without input from the user.

    Dynamically retrieving system names using this IBM library provides a good alternative to hard-coding system names into various applications and scripts.

    Michael Sansoterra is a programmer/analyst for i3 Business Solutions, an IT services firm based in Grand Rapids, Michigan. He can be contacted by email through the IT Jungle contact page.

    RELATED STORIES

    Microsoft .NET 2.0 for System i Developers: Building Windows Forms Using the DataGridview Control

    System i Developers and .NET 2.0, Part 2: Web Development Using ASP.NET AJAX

    System i Developers and .NET 2.0: ASP.NET and the Declarative Programming Model



                         Post this story to del.icio.us
                   Post this story to Digg
        Post this story to Slashdot

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    Midrange Dynamics North America

    With MDRapid, you can drastically reduce application downtime from hours to minutes. Deploying database changes quickly, even for multi-million and multi-billion record files, MDRapid is easy to integrate into day-to-day operations, allowing change and innovation to be continuous while reducing major business risks.

    Learn more.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Sponsored Links

    COMMON:  Join us at the annual 2008 conference, March 30 - April 3, in Nashville, Tennessee
    Northeast User Groups:  18th Annual Conference, April 14-16, 2008, Sheraton Hotel, Framingham, MA
    Vision Solutions:  Disaster Recovery and Compliance – Get the Free e-Book!

    IT Jungle Store Top Book Picks

    Getting Started with PHP for i5/OS: List Price, $59.95
    The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
    The System i Pocket RPG & RPG IV Guide: List Price, $69.95
    The iSeries Pocket Database Guide: List Price, $59.00
    The iSeries Pocket Developers' Guide: List Price, $59.00
    The iSeries Pocket SQL Guide: List Price, $59.00
    The iSeries Pocket Query Guide: List Price, $49.00
    The iSeries Pocket WebFacing Primer: List Price, $39.00
    Migrating to WebSphere Express for iSeries: List Price, $49.00
    iSeries Express Web Implementer's Guide: List Price, $59.00
    Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
    Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
    Getting Started with WebSphere Express for iSeries: List Price, $49.00
    WebFacing Application Design and Development Guide: List Price, $55.00
    Can the AS/400 Survive IBM?: List Price, $49.00
    The All-Everything Machine: List Price, $29.95
    Chip Wars: List Price, $29.95

    HiT Takes IT Solutions to South America Q&A with IBM’s Mark Shearer: Still Mister System i

    Leave a Reply Cancel reply

Volume 8, Number 8 -- February 27, 2008
THIS ISSUE SPONSORED BY:

Profound Logic Software
SPSS
WorksRight Software

Table of Contents

  • XAMPP: The PHP Developer’s Dream
  • Programmatically Retrieve Defined System i Names
  • Admin Alert: Five Minutes to Moving System i Objects Between Partitions

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Meet The Next Gen Of IBMers Helping To Build IBM i
  • Looks Like IBM Is Building A Linux-Like PASE For IBM i After All
  • Will Independent IBM i Clouds Survive PowerVS?
  • Now, IBM Is Jacking Up Hardware Maintenance Prices
  • IBM i PTF Guide, Volume 27, Number 24
  • Big Blue Raises IBM i License Transfer Fees, Other Prices
  • Keep The IBM i Youth Movement Going With More Training, Better Tools
  • Remain Begins Migrating DevOps Tools To VS Code
  • IBM Readies LTO-10 Tape Drives And Libraries
  • IBM i PTF Guide, Volume 27, Number 23

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle