02
Sat, Nov
2 New Articles

Turning the Tables on FTP

Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Like most AS/400 programmers, I have spent a long time in the nice, safe, stable world of OS/400. Oh, I knew there were other operating systems out there, UNIX for instance, but they were used by a strange breed of programmers who did things like “grepping.” Those programmers used words like “Telnet” and “FTP,” and I wasn’t sure I wanted to know what was involved in “pinging” someone. No, best to leave that kind of thing alone and stick to what I knew best.

Suddenly, a few UNIX boxes started to spring up around the office. Eventually, the UNIX programmers actually wanted to interact with the AS/400! Before I knew it, I found myself being dragged, kicking and screaming, into the world of TCP/IP (Transmission Control Protocol/Internet Protocol), the main protocol suite used by UNIX. Actually, it wasn’t all that bad. With the latest versions of the OS/400 operating system, IBM has made it easy to configure and use TCP/IP on the AS/400. This article is mainly concerned with FTP (File Transfer Protocol), one of the tools in the TCP/IP protocol suite, and in particular, modifying the mapping tables used by FTP.

What is FTP?

FTP is the tool that lets you transfer files between TCP/IP systems, a lot like the Client Access file download function. With FTP, you can configure your AS/400 as either a host or a client. An FTP client logs into a host to initiate an FTP session. After successful login, the client can then issue some DOS-like commands to access files and directories on the host.

If you’re like me, the thought of some stranger logging into your production AS/400 and juggling files around invokes images of your next career, the one where you ask “Would you like any fries with that?” To be on the safe side, we will discuss using the


AS/400 as an FTP client. As a matter of fact, I will relate my first real-life experience with FTP.

My assignment was to download an AS/400 file to our Novell network on a nightly basis. From there, our UNIX programmer would retrieve the file to display on our World Wide Web home page on the Internet. Being the Client Access expert, I set up a PC to download the file regularly using the Client Access router and commands. This solution ran well for a while, but eventually, two problems arose. Primarily, if we lost the router connection for some reason, the files did not get downloaded (until someone yelled at me, and I rebooted the PC). Secondly, I had to run a PC program to insert tabs as field delimiters in the downloaded file, because that is what the UNIX programs demanded, and Client Access did not offer that download option.

I fretted, I frowned, I scratched my head. “There must be a more reliable way to get this file onto our UNIX machine,” I thought. It bothered me that our transfer was not reliable. It disturbed me that we had to run an extra program to insert those darn tabs. Most of all, I didn’t like the fact that a UNIX programmer (almost a human being, for crying out loud!) had to remember to transfer the file from our network every day. Like all good ideas, the answer finally came to me in the shower one morning as I was rubbing the shampoo out of my eyes: “Why not use FTP to transfer the files?” I set about constructing a scheduled program to “push” the file onto the UNIX box.

It was a great solution. The transfer was reliable, and I didn’t have to rely on a UNIX programmer to retrieve the file since it went directly to our UNIX station. The only problem that remained was getting those pesky tab delimiters in the file once it was transferred. That’s where mapping tables came to the rescue.

FTP Mapping Tables

A mapping table is an AS/400 object (type *TBL) that is used to translate characters from one character set to another. For example, when a file is transferred from the AS/400 to another TCP/IP system, it is converted from the EBCDIC to the ASCII character set by default. The AS/400 does a “look up” on the table based on the value of the EBCDIC character and transmits the corresponding ASCII value. Fortunately, these tables can be modified, so you can translate an EBCDIC character to any ASCII character you wish.

Creating Your Own Mapping Tables

FTP uses two mapping tables, TBLASCIN for translating incoming files from ASCII to EBCDIC and TBLASCOUT to translate outgoing files from EBCDIC to ASCII. Figures 1 and 2 show examples of an outgoing table TBLASCOUT and incoming table TBLASCIN. These files can be created using the SEU command:

STRSEU SRCFILE(QGPL/QTBLSRC) +
SRCMBR(TBLASCOUT) +
TYPE(TXT)

Change the SRCMBR parameter to TBLASCIN when working with the incoming mapping table. We will be working with the outgoing mapping table to modify the EBCDIC-to-ASCII character translation.

At first glance, this table might look like a confusing jumble, but on closer inspection you will notice that it is made up of 256 pairs of characters. These pairs of characters are the hexadecimal representation of the EBCDIC character set. (A table showing the hexadecimal value of each EBCDIC character can be found in the back of the RPG/400 Reference SC09-1349-01.)


At my site, I needed to translate an EBCDIC character to an ASCII tab. I decided to use the EBCDIC greater-than sign (>), since that character would probably not be used anywhere else in the file. I then wrote a short RPG program that inserted the greater-than sign between each field. For example, a record that contained the FIRST NAME and LAST NAME fields would appear as:

JOHN>SMITH I then looked up the hexadecimal value of the greater-than sign, which was 6E or 110 in decimal. Beginning at the upper left hand corner of the mapping table, I began counting pairs of characters until I found the 110th pair. By changing this pair to 09 (the hexadecimal representation of an ASCII tab), the greater than sign would be changed to a tab when the file transfer occurred.

After creating the mapping table, it must be compiled using the command:

CRTTBL TBL(TBLASCOUT) +
SRCFILE(QGPL/QTBLSRC)
You must then grant authority to the table object using the command:
GRTOBJAUT OBJ(QGPL/TBLASCOUT) +
OBJTYPE(*TBL) +
USER(QTCP) AUT(*USE)

Using the Table

To use the mapping table, specify the table name when initiating an FTP session with a remote TCP/IP host. (This is assuming you have TCP/IP configured on your AS/400.)

The format of the command for starting the FTP client is:

STRTCPFTP +
RMTSYS(remote system name) +
TBLFTPIN(TBLASCIN) +
TBLFTPOUT(TBLASCOUT)

Notice the table names in the TBLFTPIN and TBLFTPOUT parameters. These are the incoming and outgoing mapping tables to be used when transferring a file.

Once a session has been started with the remote host, you must enter your login name and password to log in to the host. You can then transfer a file to the host using the FTP PUT command. The format for the PUT command is:

PUT localfile [remotefile]

The localfile parameter is the name of your AS/400 file in the format of Library/File Name.Member. The remotefile is the name you wish to give the file on the remote system. If this parameter is left blank, the file will have the same name as the AS/400 file.

If you need an easy, reliable method of transferring files, TCP/IP and FTP might be the answer for you. Although working with mapping tables might seem like a lot of work, once the changes are made, its a quick way of modifying your transferred file “on the fly.”

References

OS/400 TCP/IP Configuration and Reference V3R1 (SC41-3420, CD-ROM QBKANL00)

RPG/400 Reference (SC09-1349-01)


Turning_the_Tables_on_FTP04-00.jpg 450x131

Figure 1: Outgoing Mapping Table (TBLASCOUT)

Figure 2: Incoming Mapping Table (TBLASCIN)


Turning_the_Tables_on_FTP04-01.jpg 450x133

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • 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.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • 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

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • 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: