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



As I stated in my last email, it worked but based on these other comments maybe I need to think more about the situation.

Thanks

P#
Kerwin
IBMi Programming Team Leader
IBMi Systems/Applications Programmer



-----Original Message-----
From: Mark Waterbury [mailto:mark.s.waterbury@xxxxxxxxxxxxx]
Sent: Thursday, July 18, 2019 10:08 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: RNF3316 compile error

Ah ... well, I guess it depends upon the goals.   They need a better "naming convention" apparently?

On Thursday, July 18, 2019, 11:06:47 PM EDT, mlazarus <mlazarus@xxxxxxxxxxxx> wrote:

Mark,

  That would likely be more work to change the applications than just changing that one variable.

  -mark

On 7/18/2019 10:55 PM, Mark Waterbury wrote:
  Would a QUALIFIED data structure solve this problem?

      On Thursday, July 18, 2019, 10:37:50 PM EDT, mlazarus<mlazarus@xxxxxxxxxxxx>  wrote:

    This technique probably would not provide Kerwin with a viable
solution.  If this variable is needed in both DS's then conditioning it
would change the layout of the DS, when both DS's are /COPY'ed!!  It
would compile, but would not give the expected result.

    -mark

On 7/18/2019 10:21 PM, Don Brown wrote:
   
Your memory is pretty good Joe,

This would need to be put in each copy module and once the first
definition is processed the conditioning variable will be defined so
the second occurrence will be skipped.



Don Brown



From:  "Joe Pluta"<joepluta@xxxxxxxxxxxxxxxxx>
To:    rpg400-l@xxxxxxxxxxxxxxxxxx
Date:  19/07/2019 12:07 PM
Subject:        Re: RNF3316 compile error Sent by:       
"RPG400-L"<rpg400-l-bounces@xxxxxxxxxxxxxxxxxx>



Typically with a duplicate definition you can use a /DEFINE and /IF
NOT DEFINED to prevent the duplication.

I'm writing from memory here, but it would be something like this:

/IF NOT DEFINED(MYVAR_DEFINED)
/DEFINE MYVAR_DEFINED
dcl-s MyVar char(10);
/ENDIF

This is the free-format version, but the same idea applies to
fixed-format.


On 7/18/2019 8:35 PM, Kerwin Crawford via RPG400-L wrote:

     
I have a program that has a /copy to include definitions for a bunch
of

       
data structures and fields.

     
I need to include another /copy to include some other definitions
for

       
another function.

     
Both of these /copy have a field defined.  They are defined the same

       
char(10).

     
When I compile I get 'RNF3316 The item has already been defined on a

       
Definition Specification; specification is ignored.'

     
But if you look at the listing 'Compilation stopped. Severity 30
errors

       
found in program.'

     
I looked at changing the GENLVL on the compile option but 20 is as
high

       
as you can go.

     
I cannot change the either /copy easily.

Do you know of any ways to get the program to compile?

Leaning towards changing one of the /copy files.  Bummer.

TIA

Kerwin Crawfor
       
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.