From: Willie Moore To: All
I am starting to convert S/36E RPG/FMT programs to native. The S/36E procedures use a MSGF36 to display information to the user as shown in 2.
I am starting to convert S/36E RPG/FMT programs to native. The S/36E procedures use a MSGF36 to display information to the user as shown in Figure 2.
I know I have to create a message file, but am not sure how to get the program to use it. If anyone could give me any ideas on how to do this, it would be greatly appreciated.
From: Pete Hall To: Willie Moore
If you name your message file USR1 (or override to USR1), and if you prefix your S/36E message IDs with USR (1001 becomes USR1001), your S/36E message output will work without modification. There is a CRTS36-MSGF command, which will convert your S/36E message source to a native message file, and CRTS36- DSPF can convert your S and D specs to DDS, including the MICs. CRTS36-DSPF likes to put INVITEs in where they're not wanted, and usually seems to add (*PGM) after the PRINT keyword, which makes the print key dysfunctional; but other than that, I've not had any problems, and I have converted a bunch of display files that way.
From: Willie Moore To: Pete Hall
I got the display file converted. Now when I try to compile the RPG program I get the following message: QRG6044 (Externally described field name exceeds six characters). The fields are MIC0000001 and MBR-0000001. These fields are from the display program. I tried the KRENAME keyword but it did not work- said could not find format. Any ideas where to go from here?
From: Pete Hall To: Willie Moore
KRENAME is only used for record names. In order to rename a field, you need to enter an I-spec for the record, and then an I-spec for each field being renamed, with the external and RPG names. Since you're working with a display file though, it would probably make more sense to simply rename the fields in the display file. There is no particular significance to the names that CRT- S36DSPF generates. These fields are really intended to be used by program- described display files, which is what I (fool that I am) figured you were doing.
From: Willie Moore To: Pete Hall
Thanks for the information. This RPG/400 and DDS is new to me. Not like the old S/36. Two more questions and then I will leave you alone.
1. Can you give me an example of the rename for a display file field?
2. The RPG/400 Reference book says that the file name can only be one to eight characters. But we can build a file with up to 10 characters in its name. How can you read the 10-character name in the RPG program? Or do I just have to continue making the files with no more than eight-character names?
From: Pete Hall To: Willie Moore
OK, here goes.
The I-specs in 3 will cause field EXTFLDNAME to be known as RPGNAM in your program.
The I-specs in Figure 3 will cause field EXTFLDNAME to be known as RPGNAM in your program.
In order to use the external definition of a file when its name is longer than eight characters, you can simply give it an abbreviated name in your program, and then override your internal program name to the database file name when you run the RPG compiler. For instance, if you had a database file named INVNTRYMST, you could call it INVMST in the RPG program. Before compiling, you would run:
OVRDBF FILE(INVMST) + TOFILE(INVNTRYMST)
Obviously, you would either need to write a CL program to create the override and execute CRTRPGPGM, or you would need to compile interactively, for the override to be in effect. It's kind of a pain to keep track of special compile requirements six months down the road though.
From: Willie Moore To: Pete Hall
Pete, thanks again for this information. I think I will just keep the eight- character file names for normal RPG programs. We do query programs on our master files with different sequences. I will use the last two characters as QY to separate them from nonquery files. Query works great with the 10- character file name.
TechTalk: Message Files in S/36E
Figure 2 Using messages in S/36E
Figure 2: Using Messages in S/36E ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 Display file: D 7524 2Y 41 M RPG36 program: O 504 '0020U1' Procedure: // MEMBER USER1-CFWMSG1 Message file: 0020 CFW020-ORDER NOT FOUND
TechTalk: Message Files in S/36E
Figure 3 Renaming a field in RPG
Figure 3: Renaming a Field in RPG ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 IRECNAME I EXTFLDNAME RPGNAM
LATEST COMMENTS
MC Press Online