|
As was already posted, you can use the QUSRJOBI API.
Check the QUSRJOBI copybook in QSYSINC/QCBLLESRC.
-----------------------------------------------------------------------
identification division.
program-id. PC001R.
author. T. Winchester.
date-written. 04/19/01.
¹ *---------------------------------------------------------------*
¹ * This program is an example of retrieving IP addresses in the *
¹ * "dot" notation and launching a remote job (command) at a *
¹ * workstation running Client Access on a TCP/IP network. *
¹ * *
¹ * This could be used, for example, to launch WordPad, Excel, *
¹ * or any other PC based Windoze applications. In order to do *
¹ * this, you must have the Client Access remote command daemon *
¹ * running on the workstation. *
¹ * *
¹ * In the NT/Win2000 world this runs as a service. In the Win95 *
¹ * and Win98 environments you must add CWBRXD to the STARTUP *
¹ * group. This is easily configured using the Client Access *
¹ * Properties icon (see the Incomming Remote Command tab). *
¹ * *
¹ * If everything is successful, then the desptop user will see *
¹ * the WRITE program startup and there will be a QSYSPRT spool *
¹ * created on the AS/400 indicating the PC command completed, *
¹ * as follows: *
¹ * *
¹ * "The remote command has produced no output." *
¹ * *
¹ *---------------------------------------------------------------*
¹ * *
¹ * Guidelines to set up the remote command daemon on the PC can *
¹ * be found at the Support Line Knowledge Base for Client Access *
¹ * at the following location. Look under Client Access, Data *
¹ * Access, Miscellaneous Functions (RUNRMTCMD) under the title *
¹ * *
¹ * "Initiating Data Transfers From an OS/400 Command Line *
¹ * Using Client Access Incoming Remote Command Service" *
¹ * *
¹ * http://as400service.rochester.ibm.com/supporthome.nsf/ *
¹ * Document/10000051 *
¹ * *
¹ * Unwrap this direct link to take you right to it: *
¹ * *
¹ * http://as400service.rochester.ibm.com/s_dir/slkbase.NSF *
¹ * /515a7ef1f8deef8c8625680b00020380/26e8d8b78808bc4686256 *
¹ * 6ba00595402?OpenDocument *
¹ * *
¹ *---------------------------------------------------------------*
environment division.
configuration section.
input-output section.
file-control.
¹ *---- Printer
select ptofile assign to printer-QPRINT.
data division.
file section.
fd ptofile.
01 ptorecd.
05 ptoline pic x(132).
working-storage section.
¹ *---------------------------------------------------------------*
¹ * Variables for the QUSRJOBI and QDCRDEVD system API's that *
¹ * retrieve the Internal Job-Id number and the IP address of *
¹ * the client currently signed onto the AS/400. *
¹ *---------------------------------------------------------------*
01 Qualified-Job-Name.
05 Qual-JobName pic x(10) value "* ".
05 Qual-UserId pic x(10) value spaces.
05 Qual-JobNbr pic x(06) value spaces.
01 Internal-Job-Identifier pic x(16) value spaces.
01 Format-Name pic x(08) value spaces.
01 Length-of-Receiver pic s9(09) value +0 binary.
¹ *---------------------------------------------------------------*
¹ * Variables to hold the RUNRMTCMD and its length for QCMDEXC *
¹ * Note that the command string can be up to 1000 bytes long *
¹ * to compensate for those *long* directory paths :) *
¹ *---------------------------------------------------------------*
01 RunRmtCmd-Command pic x(256) value spaces.
01 RunRmtCmd-Length pic s9(10)v9(5) value +0 comp-3.
¹ *---------------------------------------------------------------*
¹ * Note: The following fields should be enclosed using single *
¹ * quotes in order for WinNT/Win2K to recognize them. *
¹ * Unfortunately, this only allows 8 character user-id's *
¹ * and passwords to be used on the PC side of the house *
¹ * since the RUNRMTCMD only permits 10 characters <sigh>. *
¹ *---------------------------------------------------------------*
01 PC-User-Id pic x(10) value "'userid '".
01 PC-Password pic x(10) value "'password'".
¹ *---------------------------------------------------------------*
¹ * The following is an error code return data structure for APIs *
¹ *---------------------------------------------------------------*
copy qusec of qsysinc-qcbllesrc.
05 Exception-Data pic x(00100).
¹ *---------------------------------------------------------------*
¹ * Protoype for calling Retrieve Device Desc API QDCRDEVD *
¹ *---------------------------------------------------------------*
copy qdcrdevd of qsysinc-qcbllesrc.
¹ *---------------------------------------------------------------*
¹ * Protoype for calling Retrieve Job Information API QUSRJOBI *
¹ *---------------------------------------------------------------*
copy qusrjobi of qsysinc-qcbllesrc.
procedure division.
000-main section.
000-begin.
open output ptofile.
¹ *---- Set-Up Parms
¹ *---- for QUSRJOBI
move "JOBI0100" to Format-Name.
move length of QWC-JOBI0100 to Length-of-Receiver.
¹ *---- Get the Internal
¹ *---- Job-Id Number
call "QUSRJOBI" using QWC-JOBI0100
Length-of-Receiver
Format-Name
Qualified-Job-Name
Internal-Job-Identifier
QUS-EC.
¹ *---- Error?
if EXCEPTION-ID not = spaces
move spaces to ptoline
move "02 QUSRJOBI error=" to ptoline (1:20)
move EXCEPTION-ID to ptoline (21:)
write ptorecd after advancing 1 line
go to 990goback
end-if.
¹ *---- Set-up Parms
¹ *---- for QDCRDEVD
move length of QDC-DEVD0600 to Length-of-Receiver.
move "DEVD0600" to Format-Name.
¹ *---- Get Device Info
¹ *---- (TCP/IP address)
call "QDCRDEVD" using QDC-DEVD0600
Length-of-Receiver
Format-Name
JOB-NAME of QWC-JOBI0100
QUS-EC.
¹ *---- Error?
if EXCEPTION-ID not = spaces
move spaces to ptoline
move "02 QDCRDEVD error=" to ptoline (1:20)
move EXCEPTION-ID to ptoline (21:)
write ptorecd after advancing 1 line
go to 990goback
end-if.
¹ *---------------------------------------------------------------*
¹ * Build the RUNRMTCMD string in a character string. The TCP/IP *
¹ * dotted address must NOT contain embedded spaces. To check the *
¹ * CCSID of the PC, open a DOS window and type CHCP. This will *
¹ * provide the correct code-page number. *
¹ *---------------------------------------------------------------*
string "RUNRMTCMD CMD('C:\WINNT\system32\write.exe')"
delimited by size
" RMTLOCNAME('" delimited by size
NETWORK-IP-ADDRESS-DOTTED-FMT of QDC-DEVD0600
delimited by spaces
"' *IP) RMTUSER(" delimited by size
PC-User-Id delimited by spaces
") RMTPWD(" delimited by size
PC-Password delimited by spaces
") CCSID(437)" delimited by size
into RunRmtCmd-Command
end-string.
¹ *---- Set-up length
¹ *---- for QCMDEXC
move length of RunRmtCmd-Command to RunRmtCmd-Length.
¹ *---- Execute
¹ *---- RUNRMTCMD
call "QCMDEXC" using RunRmtCmd-Command
RunRmtCmd-Length.
close ptofile.
990goback.
goback.
end program PC001R.
--------------------------------------------------------------------------
Terry
> -----Original Message-----
> From: Cesar Altamirano [mailto:cesaralt@viabcp.com]
> Sent: Wednesday, November 20, 2002 10:10 PM
> To: COBOL AS/400
> Subject: Job Parameters
>
>
> Hi,
> Is there any way or structure inside a COBOL program,
> to obtain the Job Name, User Name, Job Number, etc.
> like the SDS structure of an RPG program?
> I need to invoke a CL program from COBOL
> passing this parameters.
>
> Thanks for any Help.
> Regards,
> Caesar A.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.