V7R1からは、外部記述に定義したALIASがRPGでも使用できる様になっています。SQLでは長いフィールド名を使う方がしっくり来るので、Open系言語との連携するRPGなどでは、統一した方が混乱も無いかもしれませんね。
ITEM.dds
A*****************************************************************
A*S 販売管理システム *
A*SS 受発注管理 *
A*****************************************************************
A* ITEM 商品 XX/XX/XX CSC)XXXX *
A*****************************************************************
A UNIQUE
A R ITEMR TEXT('商品マスター')
A CODE 5S 0 COLHDG('コード')
A ALIAS(ITEM_CODE)
A KANA 60O COLHDG('カナ')
A ALIAS(ITEM_ZENKAKU_KANA)
A HANKAN 60A COLHDG('半角カナ')
A ALIAS(ITEM_HANKAKU_KANA)
A NAME 60O COLHDG('名称')
A ALIAS(ITEM_NAME)
A VENDC 5S 0 COLHDG('仕入先コード')
A ALIAS(ITEM_VENDOR_CODE)
USR402R.rpgle
H****************************************************************
H*-‚------------------------------*
H*-‚---<<日付・著作権 >>-----*
H*-‚------------------------------*
H DATEDIT(*YMD)
H COPYRIGHT('(C) ushiday - ')
H*-‚------------------------------*
H*-‚---<<コンパイル条件 >>-----*
H*-‚------------------------------*
H DFTACTGRP(*NO) ACTGRP(*NEW)
H OPTION(*NOUNREF)
H BNDDIR('QC2LE')
F*-š---<<ファイル定義 >>-----*
FITEM IF E K DISK
D*-š---<<変数定義 >>-----*
D*
D REC E DS EXTNAME(ITEM : *INPUT)
D QUALIFIED
D ALIAS
D*
D print PR EXTPROC('print') 標準出力関数
D msg 1000A VARYING CONST
C*-‚------------------------------*
C*-‚---<<メインルーチン >>-----*
C*-‚------------------------------*
/FREE
print ('プログラム開始') ;
//読取り
READ ITEM REC ;
IF %EOF ;
print ('レコードありません') ;
ELSE ;
print ('商品名は' + REC.ITEM_NAME ) ;
ENDIF ;
print ('プログラム終了') ;
//終了
*INLR = *ON ;
RETURN ;
/END-FREE
P****************************************************************
P** < print >: 標準出力 **
P****************************************************************
P print B EXPORT
D print PI
D msg 1000A VARYING CONST
D printf PR * EXTPROC('printf')
D template * VALUE OPTIONS(*STRING)
D string * VALUE OPTIONS(*STRING)
D dummy * VALUE OPTIONS(*NOPASS)
D*
D NEWLINE C X'15'
D*タイムスタンプ
D WTIMESTAMP S Z
D WDATE8 S 8S 0
D WTIME6 S 6S 0
/FREE
WTIMESTAMP = %TIMESTAMP() ;
WDATE8 = %DEC(%DATE(WTIMESTAMP) : *ISO );
WTIME6 = %DEC(%TIME(WTIMESTAMP) : *HMS );
printf ( %EDITW(WTIME6:' : : ')+ ' %s' + NEWLINE : msg) ;
/END-FREE
P E