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



Found this in the IBM manual under %PARMS. Not sure if it is relevant in
your case, but the symptoms are right:

"When %PARMS is used in a procedure that was called by a bound call, the
value returned by %PARMS is not available if the calling program or
procedure does not pass a minimal operational descriptor. The ILE RPG
compiler always passes one, but other languages do not. So if the caller
is written in another ILE language, it will need to pass an operational
descriptor on the call. If the operational descriptor is not passed, the
value returned by %PARMS cannot be trusted. The value returned by %PARMS
will be -1 if the system can determine that the operational descriptor
was not passed, but in some cases when the system cannot detect this,
the value returned by %PARMS may be an incorrect value that is zero or
greater."

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jerry C. Adams
Sent: Tuesday, July 10, 2012 12:28 PM
To: 'RPG programming on the IBM i / System i'
Subject: RE: %Parms Test Problem

Added the code and debugged. The answer, as expected, is 0. The
question,
also expected, I hope, is Why? I called it with: CALL ARQ006 PARM('X').
I
even tried passing both parameters: CALL ARQ006 PARM(XX XXX). Still 0.

Jerry C. Adams
IBM i Programmer/Analyst
Dobie's Dogma: If you are not thoroughly confused, you have not been
thoroughly informed.
--
A&K Wholesale
Murfreesboro, TN
615-867-5070


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Monnier, Gary
Sent: Tuesday, July 10, 2012 11:17 AM
To: RPG programming on the IBM i / System i
Subject: RE: %Parms Test Problem

So how many parms does %parm say are being passed in?

D nbrparms S 10I 0

nbrparms = %parms;



Gary Monnier

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Jerry C. Adams
Sent: Tuesday, July 10, 2012 8:51 AM
To: RPG400-L
Subject: %Parms Test Problem

I am having an issue with *NOPASS and %Parms. The issue is that, when I
pass the parm, %parms is not resolving correctly.



The prototype for the program is:

D ARQ006 PR ExtPgm('ARQ006')

D Type 2a Options(*NOPASS)

D Code 3a Options(*NOPASS)



The interface is:

D ARQ006 PI

D #Type Like(iftype)

D Options(*NoPass)

D #Code Like(ifcde)

D Options(*NoPass)



The program checks for parameters:

IF %parms > *Zeros;

dspOption = *On;

ENDIF;





I invoked the program via:

CALL ARQ006 PARM('X')



When I run the program under debug, the value of #Type = 'X'. But the
program skips right over the dspOption setting.



I have used *NOPASS before (typically when I added parameters to a
program
later) and then checked for the extra parms, such as:

IF %parms >= 13;

[do something]

ENDIF;



The only difference that I see here is that I may not want to pass any
parms. By way of explanation, this was an attempt to write an inquiry
program with a subfile. The program could be called as a stand alone
program, or as a selector from another program. I.e., in the latter
case
the calling program asks the called program [ARQ006] which records are
available, select one and return its key fields back to the caller. As
a
stand alone inquiry, it doesn't care about parameters.



Why isn't the "IF %parms > *Zeros" resulting in a true result when I
invoke
it with "CALL ARQ006 PARM('X')"?



Thanks.



Jerry C. Adams

IBM i Programmer/Analyst

You can never tell which way the train went by looking at the track.
Only
by the splatter of the blood stains

--

A&K Wholesale

Murfreesboro, TN

615-867-5070



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

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


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.