Or create a file:
A R RPPGMSTS TEXT('Program Status Data
Struct')
A $PGM 10 TEXT('Program Name')
A $STAT 5S 0 TEXT('Status Code ')
A $PSTAT 5S 0 TEXT('Previous Status Code ')
A $SRCSQ 8 TEXT('RPG Source Stmt Seq #')
A $ROUTN 8 TEXT('RPG Routine')
A $#PARM 3S 0 TEXT('Number of parameters
passed')
A $EXTYP 3 TEXT('Exception type')
A $EXNUM 4 TEXT('Exception number')
A $MIODT 4 TEXT('Machine Instruction')
A $WAMSG 30 TEXT('Work Area for Messages')
A $PGLIB 10 TEXT('Program library')
A $RTVEX 80 TEXT('Retrieved Exception Data')
A $EXID# 4 TEXT('ID# of the exception')
A $UNUSE 24 TEXT('Unused')
A $CENT 2 TEXT('1st 2 Digits of 4 digit
year')
A $LASFL 8 TEXT('Name of file of last file
op')
A $LFSTS 35 TEXT('Status info on last file
use')
A $JOB 10 TEXT('Job name')
A $USER 10 TEXT('User name')
A $JOB# 6S 0 TEXT('Job Number')
A $EDATE 6S 0 TEXT('Job Entered System Date')
A $RDATE 6S 0 TEXT('Job Run Date')
A $TIMEX 6S 0 TEXT('Job Run Time')
A $CDATE 6 TEXT('Pgm Compile Date')
A $CTIME 6 TEXT('Pgm Compile Time')
A $LEVL 4 TEXT('Level of the Compiler')
A $SRCFL 10 TEXT('Source file name')
A $SRCLB 10 TEXT('Source library name')
A $SRCMB 10 TEXT('Source member name')
A $PRCPGM 10 TEXT('Program containing
procedure')
A $PRCMOD 10 TEXT('Module containing
procedure')
A $UNUSED1 4 TEXT('Unused')
A $CUSER 10 TEXT('Current User name')
A $UNUSED2 62 TEXT('Unused')
And add a line like this to each program:
d pgmsts esds extname(ppgmsts)
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Nathan Andelin
Sent: Monday, December 06, 2010 6:43 PM
To: RPG programming on the IBM i / System i
Subject: Re: Is the Program Status Data Structure Externally Defined?
Very well, Rory. Thanks.
-Nathan
----- Original Message ----
From: Rory Hewitt <rory.hewitt@xxxxxxxxx>
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
Sent: Mon, December 6, 2010 5:21:35 PM
Subject: Re: Is the Program Status Data Structure Externally Defined?
Nathan,
Nope, but it's easy enough to stick it into a copybook:
/IF DEFINED(PGMSDS)
/EOF
/ENDIF
/DEFINE PGMSDS
D PgmSDS SDS Qualified
D MainProc 10A
D Status 5S 0
D PrvSts 5S 0
D Stmt 8A
D Routine 8A
D Parms 3S 0
D ExcpMsg 7A
D ExcpMsgPfx 3A Overlay(ExcpMsg)
D ExcpMsgNbr 4A Overlay(ExcpMsg:*Next)
D 4A
D WorkArea 30A
D PgmLib 10A
D ExcpData 80A
D ExcpID 4A
D FileErr 10A
D 6A
D Date 8A
D Century 2A
D FileErr2 8A
D FileSts 35A
D QualJob 26A
D JobName 10A Overlay(QualJob)
D JobUser 10A Overlay(QualJob:*Next)
D JobNbr 6A Overlay(QualJob:*Next)
D JobNbrN 6S 0 Overlay(JobNbr)
D JobDate 6S 0
D JobDateC 6A Overlay(JobDate)
D RunDate 6S 0
D RunDateC 6A Overlay(RunDate)
D RunTime 6S 0
D RunTimeC 6A Overlay(RunTime)
D CmpDate 6S 0
D CmpDateC 6A Overlay(CmpDate)
D CmpTime 6S 0
D CmpTimeC 6A Overlay(CmpTime)
D CmpLvl 4A
D SrcfName 10A
D SrcfLib 10A
D SrcfMbr 10A
D OwnPgm 10A
D OwnMod 10A
D 76A
D SrcID 5I 0
D SrcID2 5I 0
D UsrPrf 10A
D 62A
I just include it in my programs as:
/COPY QRPGLESRC,PGMSDS
Rory
On Mon, Dec 6, 2010 at 2:52 PM, Nathan Andelin <nandelin@xxxxxxxxx>
wrote:
Wouldn't PSDS be easier to code in modules if it were externally
defined?
Just
wondering if the file exists somewhere on the system?
-Nathan
--
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.