Do You Use an ALIAS?

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

In 7.1, you have a new option that allows you to use the alias names in externally described data structures.

 

Right after my first child was born, I remember admiring him and trying to decide what his name should be. My husband and I had four names picked out, and we liked the combination of any two. We wanted to make sure that our son had the right name. After all, studies show that your name can affect your self-concept—how effective, attractive, and valued you feel. It also affects the way you behave, your personality, and others' impressions of you. So we knew that we had an important decision to make and took it seriously. Names are not only important for people, but for products and other things too. History has shown that products with bad names don't sell well. As programmers, we know that the names we give variables, procedures, tables, and other objects need to be descriptive and self-documenting. So it's nice that we are able to use long, descriptive names for our columns and records. What isn't so nice is that when we use a file with long, descriptive names as externally described files in RPG, we get stuck with the short and sometimes cryptic names as subfields.

 

Thankfully, in 7.1, there is a new keyword to tell the RPG compiler and SQL precompiler that we want to use the long or alias names when creating an externally described data structure. The new keyword is ALIAS, and it can be used on the F-spec and the D-spec.

 

The ALIAS keyword is allowed on the F-spec when the compiler does not generate input or output specs. This would be in cases where the TEMPLATE or QUALIFIED keyword is used, as well as for local files defined in subprocedures. The alias names will be used as the subfield names for data structures defined with the LIKEREC keyword for the files specified with the ALIAS keyword. If an alias name does not exist, the standard external name is used. The ALIAS keyword can be used on any externally described data structure in the D spec.

Example 1

My DDS specification for MYFILE looks like this:

 

A          R MYREC                             

A            EMPNM         30A         ALIAS(EMPLOYEE_NAME)      

A            DEPT_ID        4A         ALIAS(DEPARTMENT_NAME)

A            BAND           1A                         

 

In the RPG source:

 

Fmyfile    if   e             disk    QUALIFIED ALIAS            

 

The subfields of the LIKEREC data structure would be…

  • EMPLOYEE_NAME
  • DEPARTMENT_NAME
  • BAND

 

When using this new feature, you need to remember that the rules for the PREFIX keyword are different for the alias names. If there is a second parameter on the PREFIX keyword, the subfields with an alias name will not have characters replaced, but just have the prefix added to the long name. Similarly, if the first parameter of the PREFIX keyword is double quotes ('') with a length specified in the second parameter, the subfields that do not have alias names will have characters removed. The subfields that have alias names will have no characters removed. If there is not a second parameter specified on the PREFIX keyword, the prefix is added to the alias name.

 

There are two other things to remember when using ALIAS. The EXTFLD keyword does not support continuation, and if you specify ALIAS, you need to be able to enter the entire alias name. The second is, if the alias name is enclosed in quotes, the standard external name is used, not the alias name.

 

Let's look at two more examples.

Example 2

My DDS specification for MYFILE2 looks like this:

 

A          R MYREC2                                               

A            XYZPRODNM      40A         ALIAS(PRODUCT_NAME)        

A            XYZSKU          8A                                

 

In RPG source:

 

Fmyfile2   if   e             disk    ALIAS QUALIFIED PREFIX(NEW_)              

 

The subfields of the LIKEREC data structure would be…                        

  • NEW_PRODUCT_NAME                                   
  • NEW_XYZSKU

                                            

 Fmyfile2   if   e             disk    ALIAS QUALIFIED PREFIX(AAA_:3)           

 

The subfields of the LIKEREC data structure would be…                             

  • AAA_PRODUCT_NAME                                
  • AAA_SKU

 

 Fmyfile2   if   e             disk    ALIAS QUALIFIED PREFIX('':3)             

 

The subfields of the LIKEREC data structure would be…                           

  • PRODUCT_NAME                                    
  • SKU                                           

                 

Example 3                                                                                                              

I have a table that is defined like this:

 

CREATE TABLE MYTAB(                             

 LONG_COLUMN_NAME_THAT_WOULD_BE_AN_ALIAS_NAME INT,              

 SECOND_LONG_COLUMN_NAME_THAT_IS_LONGER_THAN_THE_FIRST

INT,   "col %$¢&%# 23" int)

                              

In RPG source:

 

D DS1           E DS                  EXTNAME(MYTAB) QUALIFIED ALIAS     

D                                     PREFIX('A_')             

 

The subfields of DS1 would be…

  • A_LONG_COLUMN_NAME_THAT_WOULD_BE_AN_ALIAS_NAME
  • A_SECOND_LONG_COLUMN_NAME_THAT_IS_LONGER_THAN_THE_FIRST
  • A_COL__00001

 

As you can see, the ALIAS keyword allows you to utilize the long and descriptive names. Now it is up to you to name wisely.  

as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7,

Gina Whitney

Gina Whitney is a staff software engineer at IBM in SQL development for DB2 for i5/OS. She is responsible for the SQL precompilers. Gina is located in Rochester, Minnesota and can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..

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: