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



Lim,  I understand that you want to use SUCCESSFUL as a constant for
clarity in the main program line.  Since you are returning from a
procedure, why can't you just say ...

return *On,  or return *Off.

Then in the main program you can use the SUCCESSFUL constant.

If Proc1 = successful then do...
  ....
Else;
  // not successful
End If

Or...

If Proc1 <> successful then do...
...
Else
... // successful
End If

The nice thing about Procedure that return as an indicator is that you
don't even need to use the "=" in the evaluation.  With proper naming, your
main line can be very clear.

If IsProc1Successful;
   successful
Else
  not
End If

If not IsProc1Successful;
   not successful
else
  successful
end if.

Just some food for thought.



Michael Schutte



                                                                           
             Michael_Schutte@b                                             
             obevans.com                                                   
             Sent by:                                                   To 
             rpg400-l-bounces@         RPG programming on the AS400 /      
             midrange.com              iSeries <rpg400-l@xxxxxxxxxxxx>     
                                                                        cc 
                                                                           
             05/05/2006 02:18                                      Subject 
             PM                        RE: Compile failed when try to do   
                                       return                              
                                       notSUCCESSFULwhereSUCCESSFULis      
             Please respond to         declared as const                   
              RPG programming                                              
              on the AS400 /                                               
                  iSeries                                                  
             <rpg400-l@midrang                                             
                  e.com>                                                   
                                                                           
                                                                           




You can do that because the CONST data type is a number.

You can't do    "return not successful" because successful is defined as a
character data type with a value of '1', not an indicator.  What is not of
'1'?  If you want to use successful that way you need to define it as an
indicator,  datatype of "N".

Michael Schutte




             "Lim Hock-Chai"
             <Lim.Hock-Chai@us
             amobility.com>                                             To
             Sent by:                  "RPG programming on the AS400 /
             rpg400-l-bounces@         iSeries" <rpg400-l@xxxxxxxxxxxx>
             midrange.com                                               cc

                                                                   Subject
             05/05/2006 02:10          RE: Compile failed when try to do
             PM                        return not
                                       SUCCESSFULwhereSUCCESSFULis
                                       declared as const
             Please respond to
              RPG programming
              on the AS400 /
                  iSeries
             <rpg400-l@midrang
                  e.com>






Yes.  Return without the 'not' work.  I just curious as why I cannot do
"return not constIndicator"

Below is an example to return by const number and it compiles just fine:
D NUM50           c                   const(50)

D proc1           pr             2  0

C                   eval      *inlr = *on

 *------------------------------------------------------
 * test return with constant number
P proc1           B
D                 pi             2  0

C                   return    NUM50*(-1)
P proc1           E

If I can do above, I would think I should also be able to do the same on
indicator.  Don't you wish the compiler would act just what you think it
should :).


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Wilt, Charles
Sent: Friday, May 05, 2006 12:49 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: Compile failed when try to do return not SUCCESSFUL
whereSUCCESSFULis declared as const

Lim,

You need to add:

D FAILED          c                   const(*off)


Then you'll be able to do

     return    FAILED;


HTH,


Charles Wilt
--
iSeries Systems Administrator / Developer Mitsubishi Electric Automotive
America
ph: 513-573-4343
fax: 513-398-1121


> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lim Hock-Chai
> Sent: Friday, May 05, 2006 1:00 PM
> To: RPG programming on the AS400 / iSeries
> Subject: Compile failed when try to do return not SUCCESSFUL where
> SUCCESSFULis declared as const
>
> D SUCCESSFUL      c                   const(*on)
> D proc1           pr              n
>
> C                   eval      *inlr = *on
>  *------------------------------------------------------
>  * test return with not SUCCESSFUL
> P proc1           B
> D                 pi              n
>
> C                   return    not SUCCESSFUL
> P proc1           E
>
>
> I'm getting this:
> Msg id  Sv Number Seq     Message text
>
> RNF7421 30     12 001200  Operands are not compatible with the type of
> operator.
>
>
> If I changed SUCCESSFUL to be a variable, it compile ok.   Any reason
> why I can't do "return not constBoolean"?
> --
> This is the RPG programming on the AS400 / iSeries (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 AS400 / iSeries (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 AS400 / iSeries (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 AS400 / iSeries (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 ...

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.