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



Here's the text for RNF5029:
Display Formatted Message Text
System: SALLYB
Message ID . . . . . . . . . : RNF5029
Message file . . . . . . . . : QRPGLEMSG
Library . . . . . . . . . : QDEVTOOLS

Message . . . . : Result-Field entry of PARM operation in *ENTRY PLIST is
not valid; specification is ignored.
Cause . . . . . : The Result-Field entry (positions 50 - 63) of a PARM
operation in an *ENTRY PLIST is the name of a data area, data-structure
subfield, data-area data structure, program-status data structure,
file-information data structure, indicator, table, Compile-Time array, array
element, a special word, or a data structure which has a Compile-Time array
as a subfield.
Recovery . . . : Change the Result-Field entry in positions 50 - 63.
Compile again.


If you look closely at the RPG ILE reference for the PARM opcode, you'll see that there is a LONG list of "not allowed" types, including: globaly initialized data structures (or DS with initialized subfields).... This seems to be the primary issue with your definition.

Remember that for *Entry parms, the storage addresses for these parms already exists outside the program being called, so to try to make the program initialize this storage is not allowed. You should remove your initialization options from your DS definitions and see if that helps.

I might suggest that you write a prototype for this program to replace the *entry parm list. Prototypes offer much better control over the definition of complex parameter types, imo.

hth,
Eric


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Armbruster, Tom
Sent: Thursday, November 15, 2007 2:25 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: RNF5029 with multiple qualified DS


I'm a little lost as to why this program won't compile. I'm trying to
pass 3 qualified data structures to a program to log the current values.
The compiler is only returning error codes for the second and third
parameters. I CAN encapsulate the procedures in the caller, but I also
want to pass these parameters to other programs responsible for specific
processes.

These are the DS definitions:


d AddressDS DS qualified
d Line1 25A varying inz('')
d Line2 25A varying inz('')
d City 25A varying inz('')
d State 2A varying inz('')
d Province 25A varying inz('')
d Postal 10A varying inz('')
d CtyName 25A varying inz('')
d CtyID 3I 0 inz(0)
d*
d AffiliateDS DS qualified
d ID 20I 0 inz(0)
d URL 75A varying inz('')
d Site 65A varying inz('')
d BCC 256A varying inz('')
d incCost N inz(*off)
d AffComm N inz(*off)
d DefComm 2S 0 inz(0)
d alwAR N inz(*off)
d EmpID 6S 0 inz(0)
d WSID 10A inz('')
d*
d CustomerDS DS qualified
d Type 3I 0 inz(0)
d ExtID 35A varying inz('')
d IntID 20I 0 inz(0)
d First 15A varying inz('')
d Last 20A varying inz('')
d Email 70A varying inz('')
d Phone 23A varying inz('')
d Fax 23A varying inz('')
d Addr likeds(AddressDS)
d*
d PaymentIN DS qualified
d Type 3I 0 inz(0)
d Total 9S 2 inz(0)
d AcctNum 20I 0 inz(0)
d Exp 4S 0 inz(0)
d CVV 4S 0 inz(0)
d Name 37A varying inz('')
d*
d DeliveryDS DS qualified
d Type 3I 0 inz(0)
d Fee 5S 2 inz(0)
d Recipient 37A varying inz('')
d Addr likeds(AddressDS)
d Allowed 1A inz('N')
d Approved 1A inz('N')
d*
d DetailsDS DS qualified
d IP 15A varying inz('')
d Hotel 30A varying inz('')
d CheckIn d
d Promo 20I 0 inz(0)
d ExtID 35A varying inz('')
d*
d Transaction DS qualified
d Affiliate likeds(AffiliateDS)
d Customer likeds(CustomerDS)
d Payment likeds(PaymentIN)
d Delivery likeds(DeliveryDS)
d Details likeds(DetailsDS)
d TravelAgent 20I 0
d*
d PriceDS DS qualified
d Key 20I 0 inz(0)
d Qty 3I 0 inz(0)
d PricePer 7S 2 inz(0)
d Cost 7S 2 inz(0)
d Fee 5S 2 inz(0)
d Disc 7S 2 inz(0)
d Src 20I 0 inz(0)
d*
d PricesDS DS qualified
d Price likeds(PriceDS) dim(10)
d*
d SeatingIN DS qualified
d Group 5I 0 inz(0)
d Quality 5I 0 inz(0)
d Type 3I 0 inz(0)
d Qty 3I 0 inz(0)
d Prices likeds(PricesDS)
d*
d PassengerDS DS qualified
d First 15A varying inz('')
d Last 20A varying inz('')
d Wgt 5I 0 inz(0)
d Age 3I 0 inz(0)
d*
d PassengersDS DS qualified
d P like(PassengerDS) dim(50)
d*
d EventIN DS qualified
d Key 20I 0 inz(0)
d Perf 20I 0 inz(0)
d PULoc 30A varying inz('')
d PUTime T
d Seating likeds(SeatingIN)
d Passengers like(PassengersDS)
d*
d Events DS qualified
d Event likeds(EventIn) dim(6)
d ProdCount 3I 0 inz(0)
d*
d ServiceIN DS qualified
d Key 20I 0 inz(0)
d Qty 3I 0 inz(0)
d PricePer 7S 2 inz(0)
d Cost 7S 2 inz(0)
d Fee 5S 2 inz(0)
d Disc 7S 2 inz(0)
d Src 20I 0 inz(0)
d*
d Services DS qualified
d Service likeds(ServiceIn) dim(10)
d ProdCount 3I 0 inz(0)

This is the parameter list for the program:


c *entry Plist
c parm Transaction
c parm Events
c parm Services
c parm @OrderNum

@OrderNum is a 13P 0 value provided by the caller.

The caller is an XML processor for web based product orders. I've been
able to compile other programs that use the Transaction DS. This is my
first attempt at passing complex data structures between programs. I'm
probably missing something simple.

Any ideas? Are multidimensional arrays a limitation?

Thanks,
Tom Armbruster


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.