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



Bob, Charles, et al.,

That filled in quite a few blanks. The P vs D spec was throwing me and led me the wrong direction. I originally used the EXTPGM keyword (based on some info I found) but it wouldn't compile, complaining about using EXTPGM with a procedure (or something along those lines). So I ended up getting it to compile but not run by omitting the keyword. I should have looked at the D spec vs P spec issue. It got right past me. Using P specs was my assumption because I had only written sub procedures before. I'll have to remember the rules change for a "main" procedure.

Thanks for all the help.

Pete


Bob P. Roche wrote:
You also don't need to the P spec for the main program , only for procedures. The P spec is what made the DFTACTGRP necessary



<matt.haas@xxxxxxxxxxx> Sent by: rpg400-l-bounces@xxxxxxxxxxxx
10/22/2007 10:47 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
<rpg400-l@xxxxxxxxxxxx>
cc

Subject
RE: Plain old RPGLE program in /Free






Pete,

This is a FAQ. I think the problem is you're missing EXTPGM on your
prototype. It must be the same name as the program and you have to
specify it in uppercase.

Matt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Pete Helgren
Sent: Monday, October 22, 2007 11:41 AM
To: RPG programming on the AS400 / iSeries
Subject: Plain old RPGLE program in /Free

I was feeling pretty comfortable with my transition from RPGIII to RPGLE

and /free until I needed to write a program from scratch that wasn't using *ENTRY to pass parms to the program. I must not understand the differences between the way RPGIII passed parameters and the way RPGLE operates.

What I have been doing (cheating) was to have a short, initial non-free calculation section like this:

C *ENTRY PLIST
C PARM MyParm
C/free

What I want to do is to do it "correctly". So after poking around the Internet I thought I came up with the solution:

D Main PR
D 8A
D*********************************************************
D*Main Procedure
D*********************************************************
P Main B
D PI
D MyParm 8A
C/free
// Body of the program here

It wouldn't compile until I used dftactgrp(*no) actgrp(*caller) on the H

specs.

Although it compiles, when I run it in debug mode, the program is invoked but "hangs" at the command line, it never progresses to the first statement of the program which is where I have my breakpoint set.

So the question is: What is the correct way to write a simple program in RPGLE that takes parameters? What do I do with the *ENTRY PLIST method of passing parameters? I could go back to using the *ENTRY PLIST

approach but I'd like to use the "correct" way, if there is such a
thing...

Thanks,

Pete Helgren




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.