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



Jon,

I'm using the procedure as a function - it returns a char(15) value (the DS parameter is not changed). Usage will be:

Char(15) = VS_RateShop(plist1)

As for the "naming" - it is meaningful (to me) in that it's a common parameter used by the 3rd Party application I'm called. It is their "standard" parameter list. Silly, I know. But when I see PLIST1 I "know" it's their interface.

I guess, since I'm calling it from within my programs I could rename it whatever I like.

Greg

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Jon Paris
Sent: Monday, April 15, 2019 10:56 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Advice passing a large parameter

Chris is correct but I would also suggest you consider getting rid of the Char(15) length on the DS - it serves no purpose - other than possibly to confuse people and give you one more thing to change should the DS get larger.

As to the "best" place. Personally I would place the DS template in one of two places depending on where it is used.

If it is widely used, even when not being used as a parm, then include it in a copy source for "standard data types" and include that in all programs that need it. Since a template takes up no memory there is no harm in having hundreds of templates even if you only use one.

If it is always used as a parm then I would include it in the same source member as all the prototypes.

As to name - make it meaningful. Parm1 is _ not_ meaningful and neither is PLIST1. _Described_ the data it contains. CustomerInfo or whatever it contains.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Apr 15, 2019, at 10:07 AM, Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx> wrote:

Thanks Chris... someone in a previous reply mentioned using the qualified DS.

That is the missing link.

Since PLIST1 will likely be defined in all the programs that call this procedure, where is it best to place the definition for the prototype and procedure interface?

Would it be best to name it something else for purposes of the PR and PI "LIKEDS"?

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf
Of Hiebert, Chris
Sent: Monday, April 15, 2019 9:54 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Advice passing a large parameter

Your procedure interface defines the name of the parameter being passed.

inPlist1 likeds(plist1) const;


By using LIKEDS the data structure is automatically qualified.

So, in the Procedure you would reference the fields by qualifying access.

inPlist1.fieldname


The data structure plist1 is empty because, within the service program, it has not been set to a value.
If you "must" use the unqualified fields from plist1, then your procedure would need to load plist1 from inPlist1.

I find it best to use qualified data structures whenever possible.


Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the author and do not necessarily represent those of the company.
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf
Of Greg Wilburn
Sent: Monday, April 15, 2019 7:49 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Advice passing a large parameter

OK... but the subfields in inPlist1 have the same name.

When I look at inPlist1 in debug, I can see data in the subfields. Yet when referencing just the subfield name in the procedure, it is empty.

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

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

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.