× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Jerry,

In S/36 RPG II, the format object defaults to the 6 character program name + "FM". You can specify different options via the "K" extensions for the F spec. In this case it's the KFMTS keyword to change the embedded name. The key is that the compiler embeds the format object's name. Apparently, on the /400, the compiler still uses the same naming convention, but it allows longer names, so the compiler would take the up to the first 8 characters and then append the "FM".

You should be able to use an OVRDSPF in the OCL to point it to a different library/format object.

-mark

At 8/9/2011 11:26 AM, you wrote:
Let's board the Wayback machine for a trip down RPG II (not my choice, just
my job).

I'm doing maintenance on a couple of programs which have the same name in
separate libraries. I copied the source for one into my project library as
"GL0211" and the other one as "GL0211OE" and compiled each. Both programs
use a workstation file named GL0211FM (FGL0211FMCP F 1920
WORKSTN) there are no continuation lines in the F-specs.


When I push them to my test libraries I use the CRTDUPOBJ command such that
GL0211OE gets created as GL0211 (no CMS here). The CL to do the push is:



RMVM FILE(&OE/QS36SRC) MBR(GL0211)

CPYSRCF FROMFILE(PROJ0055/QS36SRC) +

TOFILE(&OE/QS36SRC) FROMMBR(GL0211OE) +

TOMBR(GL0211)

DLTPGM PGM(&OE/GL0211)

CRTDUPOBJ OBJ(GL0211OE) FROMLIB(PROJ0055) +

OBJTYPE(*PGM) TOLIB(&OE) NEWOBJ(GL0211)



where &OE represents the library (in this case a test library).



When I tried to test this program, though, I got an error:



RPG9027 Options ( 23F)

Attempt to open file GL0211FM failed.



A higher-level message is:



File GL0211OEFM in library *LIBL not found



Notice the name. I did a DSPPGMREF on the program in both the project and
test libraries (after the push), but they both show:



Object . . . . . . . . . . . . . . . . . . : GL0211FM

Library . . . . . . . . . . . . . . . . . : *LIBL

Object type . . . . . . . . . . . . . . . : *FILE

File name in program . . . . . . . . . . : GL0211FM

File usage . . . . . . . . . . . . . . . : Input

Output



Does anyone have the faintest idea why the program is trying to find
GL0211OEFM instead of the GL0211FM as defined in the program? Other than
possibly using an OVRDSPF in the OCL procedure, which may or may not work,
is there any way to overcome this issue? I did think about putting the
second program (GL0211OE) into a separate project library and using its real
name. Is that my only option? More than anything I'm trying to understand
why the program is looking for a file that it does not even reference (see
above).



Thanks.



Jerry C. Adams

IBM i Programmer/Analyst

--

A&K Wholesale

Murfreesboro, TN

615-867-5070


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.