|
Your's: QUSLSPL(YourSpace:'SPLF0100' : '*ALL' : 'QEZJOBLOG *LIBL ':'*ALL':'*ALL') Mine: QUSLSPL(MYSPACE :'SPLF0300' : SdUser : '*ALL' :'*ALL':'*ALL':dsEC); I was just checking your call with my call from RPGLE. I see one difference being that you didn't use that last parm. I'm not an expert. But is that last one required? Below is my program, if you'd like to look at it. It works. It lists all the spoolfiles created by my userid. This is my own special program, so there's some stuff in it that really isn't needed and it's not really all that clean, but I think that you could follow it. H Option(*SrcStmt: *NoDebugIO) DftActGrp(*No) H Bnddir('QC2LE') FBEFDS000@@CF E WORKSTN INDDS(Indicators) F INFDS(Information) F SFILE(S1:S1N) D GoCmd PR 10i 0 ExtProc('system') D CmdString * Value D Options(*String) D NullString C -1 D Success C 0 D ReturnCode S 10i 0 D PgmInfo SDS D SdProgram 1 10 D @Parms 37 39 0 D @MsgID 40 46 D @JobName 244 253 D SdUser 254 263 D QUSLSPL PR extpgm('QUSLSPL') * required parameters D UsrSpc 20A const D Format 8A const D UserName 10A const D QualOutQ 20A const D FormType 10A const D UserData 10A const * optional group 1: D ErrorCode 32766A options(*nopass: *varsize) * optional group 2: D QualJob 26A options(*nopass) const D FieldKeys 10I 0 options(*nopass: *varsize) D dim(9999) D NumFields 10I 0 options(*nopass) const * optional group 3: D AuxStgPool 10I 0 options(*nopass) const * optional group 4: D JobSysName 8A options(*nopass) const D StartCrtDate 7A options(*nopass) const D StartCrtTime 6A options(*nopass) const D EndCrtDate 7A options(*nopass) const D EndCrtTime 6A options(*nopass) const D QUSCRTUS PR extpgm('QUSCRTUS') D UsrSpc 20A const D ExtAttr 10A const D InitialSize 10I 0 const D InitialVal 1A const D PublicAuth 10A const D Text 50A const D Replace 10A const D ErrorCode 32766A options(*nopass: *varsize) D QUSPTRUS PR extpgm('QUSPTRUS') D UsrSpc 20A const D Pointer * * D QUSDLTUS PR extpgm('QUSDLTUS') D UsrSpc 20A const D ErrorCode 32766A options(*varsize) * D p_UsrSpc s * D dsLH DS based(p_UsrSpc) D qualified D Filler1 103A D Status 1A D Filler2 12A D HdrOffset 10I 0 D HdrSize 10I 0 D ListOffset 10I 0 D ListSize 10I 0 D NumEntries 10I 0 D EntrySize 10I 0 D p_Entry s * D dsSF DS based(p_Entry) D qualified D JobName 10A D UserName 10A D JobNumber 6A D SplfName 10A D SplfNbr 10I 0 D SplfStatus 10I 0 D OpenDate 7A D OpenTime 6A D Schedule 1A D SysName 10A D UserData 10A D FormType 10A D OutQueue 10A D OutQueueLib 10A D AuxPool 10I 0 D SplfSize 10I 0 D SizeMult 10I 0 D TotalPages 10I 0 D CopiesLeft 10I 0 D Priority 1A D Reserved 3A D dsEC DS qualified D BytesProvided 10I 0 inz(%size(dsEC)) D BytesAvail 10I 0 inz(0) D MessageID 7A D Reserved 1A D MessageData 240A * constants * ~~~~~~~~~ D MYSPACE c const('SPLFLIST QTEMP ') D Low c const('abcdefghijklmnopqrstuvwxyz') D Up c const('ABCDEFGHIJKLMNOPQRSTUVWXYZ') * * Field Definitions. * ~~~~~~~~~~~~~~~~~~ D OutQName ds D OutQ 10A inz(*blanks) D OutQLib 10A inz(*blanks) * D size s 10I 0 D S1N s 8 0 D iX s 8 0 D pos s 4 0 inz(0) D pos1 s 4 0 inz(0) D CmdString s 12500 inz(*blanks) D CmdLength s 15 5 inz(0) * D IFSPDFName s 2500 inz(*blanks) D IFSHTMName s 2500 inz(*blanks) D JobInfo s 256 inz(*blanks) D IFSFName s 256 inz(*blanks) D FTPFName s 256 inz(*blanks) D wSPLFName s 10 inz(*blanks) D wJobName s 10 inz(*blanks) D wUserData s 10 inz(*blanks) D EMLSubject s 256 inz(*blanks) D EMLMessage s 15000 inz(*blanks) D EMLAddress s 256 inz(*blanks) D TodayDoW s 3 inz(*blanks) D SPLFDate s d datfmt(*iso) D TodayDate s d datfmt(*iso) D YesterDayDate s d datfmt(*iso) D LastSaturday s d datfmt(*iso) D LastFriDay s d datfmt(*iso) D cYMDDate s 6 inz(*blanks) * D ProgramName s 10 inz(*blanks) D FormName s 10 inz(*blanks) D View1 DS 50 D V1USRD 10 OverLay(View1:01) D V1STAT 4 OverLay(View1:13) D V1PAGE 5 OverLay(View1:19) D V1COPY 6 OverLay(View1:27) D V1TYPE 10 OverLay(View1:35) D V1PTY 3 OverLay(View1:47) D View2 DS 50 D V1FNUM 7 OverLay(View2:01) D V1JOB 10 OverLay(View2:11) D V1JOB# 6 OverLay(View2:23) D V1DATE 8 OverLay(View2:31) D V1TIME 8 OverLay(View2:41) D Information DS D KeyPressed 369 369 D Cursor 370 371B 0 D SdScreen 83 92 D Indicators DS D AnyErrors N OverLay(Indicators:99) D LastPage N OverLay(Indicators:98) D ClearSub N OverLay(Indicators:88) D ViewInd N OverLay(Indicators:55) D ViewInd2 N OverLay(Indicators:56) D ShowKey3 N OverLay(Indicators:53) D ShowKey2 N OverLay(Indicators:52) D ShowKey1 N OverLay(Indicators:51) D InvalidOptn N OverLay(Indicators:11) Ì*¹Function Key Hex Values D ProcessKey C x'31' D ExitKey C x'33' D PromptKey C x'34' D RefreshKey C x'35' D ViewKey C x'3B' D PreviousKey C x'3C' D TopKey C x'B5' D BottomKey C x'B6' D WriterKey C x'B8' D DescKey C x'B9' D PrinterKey C x'BA' D MoreKey C x'BC' D EnterKey C x'F1' Ì*¹Other Constants D False C '0' D True C '1' D F24Cnt S 1 0 D S1Max S Like(SFLRRN) D SvRRN S Like(SFLRRN) D Cmd S 3000A D Len S 15P 5 Ì*¹External Program Calls D QCMDEXC PR ExtPgm('QCMDEXC') D Cmd 3000A D Len 15P 5 D Error 3A D CmdError S 3A D SvRCD# S Like(SFRCD#) C *ENTRY PLIST C PARM USER 10 /Free If User <> '*CURRENT'; SdUser = User; EndIf; LastPage = *On; ViewInd = *On; ViewInd2 = *Off; ExSr LoadS1#; SFLRRN = 0; ShowKey1 = *On; SvRCD# = 1; DoW KeyPressed <> ExitKey; //¹By default we want to display first page of subfile SFRCD# = 1; If SFLRRN > S1Max; SFLRRN = S1Max; EndIf; //¹However if user was on another page, display that one. If SFLRRN > 9; SFRCD# = (%Int(SFLRRN / 10) * 9) + 1; // SFRCD# = SFLRRN; EndIf; CmdLine = *Blanks; Write Ovr; Write D1; // DoW '1'; Monitor; ExFmt C1; // Leave; //¹If no errors, then leave this loop. On-Error *All; SFRCD# = 1; SFLRRN = 1; ItEr; EndMon; // EndDo; Read D1; Clear Msg; Reset AnyErrors; If KeyPressed = ExitKey Or KeyPressed = PreviousKey; Leave; ElseIf KeyPressed = PromptKey; //¹F4 ExSr F4Pressed#; ElseIf KeyPressed = RefreshKey; //¹F5 ExSr LoadS1#; ElseIf KeyPressed = ViewKey; //¹F11 ViewInd = not ViewInd; ViewInd2 = not ViewInd2; ExSr LoadS1#; ElseIf KeyPressed = TopKey; //¹F17 SFLRRN = 1; ElseIf KeyPressed = BottomKey; //¹F18 SFLRRN = S1Max; ElseIf KeyPressed = MoreKey; //¹F24 ExSr F24Pressed#; ElseIf Keypressed = EnterKey; //¹Enter ExSr EnterPressed#; EndIf; EndDo; *InLr = *On; Return; //ã----------------------------------------------------------------- //ã----------------------------------------------------------------- BegSr LoadS1#; ClearSub = *On; Write C1; ClearSub = *Off; //¹set this to zero to let OS/400 handle errors dsEC.BytesProvided = 0; //¹Make space for (approx) 1000 spooled files to be listed size = %size(dsLH) + 512 + (%size(dsSF) * 1000); //¹Create a user space //¹List spooled files to the user space //¹Get a pointer to the returned user space //¹Create a user space QUSCRTUS(MYSPACE: 'USRSPC': size: x'00': '*ALL': 'Temp User Space for QUSLSPL API': '*YES': dsEC); //¹List spooled files to the user space QUSLSPL(MYSPACE:'SPLF0300':SdUser:'*ALL':'*ALL':'*ALL':dsEC); //¹Get a pointer to the returned user space QUSPTRUS(MYSPACE:p_UsrSpc); //¹Loop through list, for each spooled file, display the //¹Status: 1=RDY , 2=OPN, 3=CLO, 4=SAV, 5=WRT, 6=HLD, //¹7=MSGW, 8=PND, 9=PRT,10=FIN,11=SND,12=DFR p_Entry = p_UsrSpc + dsLH.ListOffset; S1N = 0; S1Max = 0; iX = 1; DoW iX <= dsLH.NumEntries; S1Optn = ' '; SfUser = dsSF.UserName; SfFile = dsSF.SplfName; //¹View one V1USRD = dsSF.UserData; SFUSRD = dsSF.UserData; EvalR V1PAGE = %EditC(dsSF.TotalPages:'Z'); EvalR SFPAGE = %EditC(dsSF.TotalPages:'Z'); EvalR V1COPY = %EditC(dsSF.CopiesLeft:'Z'); EvalR SFCOPY = %EditC(dsSF.CopiesLeft:'Z'); V1TYPE = dsSF.FormType; SFTYPE = dsSF.FormType; V1PTY = dsSF.Priority; SFPTY = dsSF.Priority; //¹View two EvalR V1FNUM = %EditC(dsSF.SplfNbr:'Z'); EvalR SFFNUM = %EditC(dsSF.SplfNbr:'Z'); V1JOB = dsSF.JobName; SFJOB = dsSF.JobName; V1JOB# = dsSF.JobNumber; SFJOB# = dsSF.JobNumber; V1DATE = %Char(%date(dsSF.OpenDate:*Cymd0):*MDY); SFDATE = %Char(%date(dsSF.OpenDate:*Cymd0):*MDY); V1TIME = %SubSt(dsSF.OpenTime:1:2) + ':' + %SubSt(dsSF.OpenTime:3:2) + ':' + %SubSt(dsSF.OpenTime:5:2); SFTIME = V1Time; //¹View one, status If dsSF.SplfStatus = 1; V1Stat = 'RDY'; ElseIf dsSF.SplfStatus = 2; V1Stat = 'OPN'; ElseIf dsSF.SplfStatus = 3; V1Stat = 'CLO'; ElseIf dsSF.SplfStatus = 4; V1Stat = 'SAV'; ElseIf dsSF.SplfStatus = 5; V1Stat = 'WRT'; ElseIf dsSF.SplfStatus = 6; V1Stat = 'HLD'; ElseIf dsSF.SplfStatus = 7; V1Stat = 'MSGW'; ElseIf dsSF.SplfStatus = 8; V1Stat = 'PND'; ElseIf dsSF.SplfStatus = 9; V1Stat = 'PRT'; ElseIf dsSF.SplfStatus = 10; V1Stat = 'FIN'; ElseIf dsSF.SplfStatus = 11; V1Stat = 'SND'; ElseIf dsSF.SplfStatus = 12; V1Stat = 'DFR'; EndIf; SFStat = V1Stat; If ViewInd = *On; SFALTV = View1; ElseIf ViewInd2 = *On; SFALTV = View2; EndIf; If dsSF.OutQueueLib <> 'AUDLIB' And dsSF.OutQueue <> 'DEADQ' And dsSF.OutQueue <> 'SPLIT' And dsSF.OutQueue <> 'NOTES' And dsSF.SplfName <> 'QPRINT' And dsSF.SplfName <> 'QPJOBLOG' And dsSF.OutQueue <> 'NOTESX'; S1Max += 1; S1N += 1; InvalidOptn = *Off; Write S1; EndIf; p_Entry = p_Entry + dsLH.EntrySize; iX += 1; EndDo; If S1N = 0; S1N = 1; SFALTV = 'No Spoolfiles To Display'; Clear SfUser; Clear SfFile; Write S1; S1N = 0; EndIf; //¹Delete user space QUSDLTUS(MYSPACE: dsEC); EndSr; //ã----------------------------------------------------------------- //ã----------------------------------------------------------------- BegSr F4Pressed#; //¹F4 and Enter perform same function. well,4 our purpose it does ExSr EnterPressed#; EndSr; //ã----------------------------------------------------------------- //ã----------------------------------------------------------------- BegSr F22Pressed#; //¹Work with all printers. Cmd = 'WRKWTR WTR(*PRT)'; Len = %Len(%Trim(Cmd)); GoCmd(Cmd); EndSr; //ã----------------------------------------------------------------- //ã----------------------------------------------------------------- BegSr F24Pressed#; ShowKey1 = *Off; ShowKey2 = *Off; ShowKey3 = *Off; F24Cnt += 1; If F24Cnt = 1; ShowKey1 = *On; ElseIf F24Cnt = 2; ShowKey2 = *On; ElseIf F24Cnt = 3; ShowKey3 = *On; F24Cnt = 0; EndIf; EndSr; //ã----------------------------------------------------------------- //ã----------------------------------------------------------------- BegSr EnterPressed#; *In01 = *Off; DoW '1'; ReadC S1; If %EoF(BEFDS000@@); Leave; EndIf; If S1N >= S1Max; SFLRRN = S1Max - 1; Else; SFLRRN = S1N; EndIf; If S1Optn = ' '; InvalidOptn = *Off; Update S1; ItEr; EndIf; *In01 = *On; //¹Verify user has authority to spoolfile. //¹Users can view files in thier own department or those //¹that belong to the operator. // If %SubSt(SdUser:1:3) <> %SubSt(SFUser:1:3) And // SFUser <> 'OPERATOR'; // AnyErrors = *On; // Msg = 'ÏUSER DOES NOT HAVE AUTHORITY TO THIS SPOOLFILE·'; // InvalidOptn = *On; // Update S1; // ItEr; // EndIf; If KeyPressed = PromptKey And S1Optn <> '1' And S1Optn <> '2' And S1Optn <> '3' And S1Optn <> '7'; AnyErrors = *On; InvalidOptn = *On; Msg = 'Option ' + S1Optn + ' cannot be prompted'; Update S1; ItEr; EndIf; Cmd = 'FILE(' + SFFILE + ') ' + 'JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + 'SPLNBR(' + %Trim(SFFNUM) + ') JOBSYSNAME(*ONLY) ' + 'CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; If S1Optn = '1'; Cmd = 'SNDNETSPLF ' + %Trim(Cmd); If KeyPressed = PromptKey Or (KeyPressed = EnterKey And CmdLine = *Blanks); Cmd = 'SNDNETSPLF ?*FILE(' + SFFILE + ') ' + '?*JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + '?*SPLNBR(' + %Trim(SFFNUM) + ') ?*JOBSYSNAME(*ONLY) ' + '?*CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; EndIf; If CmdLine <> *Blanks; Cmd = %Trim(Cmd) + ' ' + %Trim(CmdLine); EndIf; ElseIf S1Optn = '2'; Cmd = 'CHGSPLFA ' + %Trim(Cmd); If KeyPressed = PromptKey Or (KeyPressed = EnterKey And CmdLine = *Blanks); Cmd = '? CHGSPLFA ?*FILE(' + SFFILE + ') ' + '?*JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + '?*SPLNBR(' + %Trim(SFFNUM) + ') ?*JOBSYSNAME(*ONLY) ' + '?*CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; EndIf; If CmdLine <> *Blanks; Cmd = %Trim(Cmd) + ' ' + %Trim(CmdLine); EndIf; ElseIf S1Optn = '3'; Cmd = 'HLDSPLF FILE(' + SFFILE + ') ' + 'JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + 'SPLNBR(' + %Trim(SFFNUM) + ') ' + 'JOBSYSNAME(*ONLY) ' + 'CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; If KeyPressed = PromptKey; Cmd = '? HLDSPLF ?*FILE(' + SFFILE + ') ' + '?*JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + '?*SPLNBR(' + %Trim(SFFNUM) + ') ' + '?*JOBSYSNAME(*ONLY) ' + '?*CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; EndIf; If CmdLine <> *Blanks; Cmd = %Trim(Cmd) + ' ' + %Trim(CmdLine); EndIf; ElseIf S1Optn = '7'; Cmd = '? CPYSPLF ?*FILE(' + SFFILE + ') ' + '?*JOB(' + %Trim(SFJOB#) + '/' + %Trim(SFUSER) + '/' + %Trim(SFJOB) + ') ' + '?*SPLNBR(' + %Trim(SFFNUM) + ') ' + '?*JOBSYSNAME(*ONLY) ' + '?*CRTDATE(' + '''' + SFDATE + '''' + ' ' + '''' + SFTIME + '''' + ')'; If CmdLine <> *Blanks; Cmd = %Trim(Cmd) + ' ' + %Trim(CmdLine); EndIf; ElseIf S1Optn = '4'; Cmd = 'CHGSPLFA ' + %Trim(Cmd) + ' OUTQ(DEADQ)'; ElseIf S1Optn = '5'; Cmd = 'DSPSPLF ' + Cmd; ElseIf S1Optn = '6'; Cmd = 'RLSSPLF ' + Cmd; ElseIf S1Optn = '8'; Cmd = 'WRKSPLFA ' + Cmd; ElseIf S1Optn = '9'; Cmd = 'WRKPRTSTS ' + Cmd; EndIf; Len = %Len(%Trim(Cmd)); ReturnCode = GoCmd(Cmd); Select; When ReturnCode = Success; When ReturnCode = NullString; Other; AnyErrors = *On; Msg = %Char(ReturnCode); //éMsg = 'Operation did not complete due to error'; InvalidOptn = *On; Update S1; ItEr; EndSL; EndDo; //¹Monitor program call and display any error messages If *In01 = *Off And CmdLine = *Blanks; *InLR = *On; Return; ElseIf *In01 = *Off; Cmd = CmdLine; ReturnCode = GoCmd(Cmd); Select; When ReturnCode = Success; When ReturnCode = NullString; Other; Msg = 'Command Ended In Error'; EndSL; //Len = %Len(%Trim(Cmd)); //Monitor; // QCMDEXC(Cmd:Len:CmdError); //On-Error *Program; // Msg = 'Command Ended In Error'; //EndMon; EndIf; //¹Rebuild file and subfile If not AnyErrors; ExSr LoadS1#; EndIf; EndSr; /End-Free Michael Schutte "John" <jallen@xxxxxxxxx om> To Sent by: <MIDRANGE-L@xxxxxxxxxxxx> midrange-l-bounce cc s@xxxxxxxxxxxx Subject Cause for CPD3C21 format name not 04/28/2006 02:33 valid when calling QUSLSPL PM Please respond to Midrange Systems Technical Discussion <midrange-l@midra nge.com> I am trying to use the QUSLSPL program to get a list of spooled files into a user space I am on V5R3 and when I call the program QUSLSPL I get message CPD3C21 I verified and re-verified that the format name is spelled correctly Message ID . . . . . . . . . : CPD3C21 Message file . . . . . . . . : QCPFMSG Library . . . . . . . . . : QSYS2924 Message . . . . : Format name SPLF0100 is not valid. Cause . . . . . : The format name specified is not valid. Here is my call CALL PGM(QUSLSPL) PARM('SFWOQENT QTEMP ' 'SPLF0100' '*ALL' 'QEZJOBLOG *LIBL ' '*ALL' '*ALL') Does anyone know possible causes for format name SPLF0100 not being valid? Thanks John -- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
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.